The existing code complicates the build system and IDE integration. This keeps most of the flexibility while simplifying the build system.