start working on codegen