Move to c++ dir
Implement unoptimised first version
Finish implementing the first fully working version