now depend on codegen lib