[c++]
 + big mess