1. A method of unmarshaling an argument object reference that is at least a part of an argument in an invocation request encapsulated within a marshal buffer, the argument object reference including a subcontract identifier, the method comprising the steps of: a) identifying a subcontract associated with the argument object reference by reading the subcontract identifier in the argument object reference, wherein the subcontract identifying step is accomplished by the marshal buffer; b) accessing a subcontract registry using the subcontract identifier as a key to identify an unmarshal method associated with the identified subcontract, the subcontract registry accessing step being accomplished by the subcontract identified by the subcontract identifier; and c) calling the identified unmarshal method associated with the identified subcontract passing the marshal buffer as an argument to the call, wherein the identified unmarshal method unmarshals the argument object reference.