create a code generator