PROBABLY UNSTABLE STILL: Underwent furthermore reformatting, and added CMake support