codegen lib