1. A method for deferring instantiation of an object in an object-oriented programming environment, comprising: instantiating a first object having a relationship with a second object; and instantiating a fault object as a placeholder for the second object; wherein instantiation of the second object is deferred until a message for the second object can not be responded to by the fault object; and wherein the fault object is configured to respond, on behalf of and in the same manner as the second object, to a subset including at least one message but not all messages comprising a set of messages to which the second object is configured to respond.