Added CMake build system, might need revising