implement proxy code generator