codegen seems to work