if (target instanceof ClassProxy) throw new IllegalStateException("A ClassProxy is not allowed to be Versioned. You must have a concrete object");
ClassProxy proxy = ClassProxyFactory.newInstance(target.getClass());
VersionedObject versioned = new VersionedObject(target);
proxy._getInstanceAdvisor().getMetaData().addMetaData(VERSIONED, VERSIONED_OBJECT, versioned, PayloadKey.TRANSIENT);
proxy._getInstanceAdvisor().appendInterceptor(VersionedObjectInterceptorFactory.getInstance());
proxy._getInstanceAdvisor().appendInterceptor(new VersionedObjectForwardingInterceptor());
return proxy;