Added cpp version with makefile