init cpp branch: add basic tools classes