wip on codegen
wip