General template for CPP development