restructured with CMakeLists.txt
