improved CMakeLists.txt