working on code generation