skeleton of the code generator