better CMakeLists