Develop merge to master

Code has been refactored so that it stays in obj-c++ and all other files can safely be c++