code generation modified