Initial commit of source files and CMakeList