bit messed up but converging on modularized and single-exe