adapted for C++ StartingKit 0.1.7