Pull for phase-1

All changes are in cpp directory, plus minor changes in .gitignore