make possible to generate two files (cpp and hpp)
change guardian names
add constructors and destructor management