modified CMake and organization