enhancer.setSuperclass(pojo.getClass());
enhancer.setInterfaces(new Class[] { DirtFieldsWatcher.class });
enhancer.setCallbackTypes(new Class[] { MethodInterceptor.class, Dispatcher.class, MethodInterceptor.class });
enhancer.setCallbackFilter(IGNORE_BRIDGE_AND_OBJECT_METHODS);
BaseObject baseObject = new BaseObject();
enhancer.setCallbacks(new Callback[] { new WatchSetterInterceptor(pojo, baseObject), new Dispatcher() { public Object loadObject() throws Exception {return pojo;} }, new BypassBaseObjectInterceptor(baseObject) });
return (T) enhancer.create();
}