restructuring things because msvc requires a single executable per project