Switch to CMake
Improve directory structure