codegen module