1. A storage medium encoded with instructions, wherein the instructions when executed comprise: receiving a request comprising a target object name and a target object information to create a target object from a client; in response to the request from the client to create the target object, creating a reference object from a class definition at a server, wherein the target object and the reference object are separate; in response to the creating the reference object, binding the reference object to a name space at the server, wherein the binding the reference object to the name space at the server is performed while the target object associated with the reference object is not instantiated, wherein the binding the reference object to the name space at the server while the target object associated with the reference object is not instantiated further comprises saving the target object name and a pointer in the name space, wherein the pointer is associated with the target object name, and wherein the pointer points to the reference object; in response to an invocation of a method at the client on the reference object, determining whether the target object associated with the reference object exists, wherein the client searches for the target object name and the pointer to the reference object in the name space using the target object name as an index into the name space; if the target object does not exist, creating an instance of the target object and returning the instance of the target object to the method that was invoked on the reference object in response to the determining, wherein the target object comprises a home object; and if the target object does exist, returning the target object to the method that was invoked on the reference object in response to the determining.