code generator object