Several run-time MOPs have been designed so that, when a meta-object is requested to handle a reified operation (for example, a method invocation), it is obliged, by design of the MOP, to return a valid result for the operation. The meta-level computation that yields the result can include or not the delivery of the operation to the base-level object.
This design implies that the only way to combine the behavior of meta-objects is by arranging for one meta-object, say M, to forward operation handling requests to another, say N, delegating to N the responsibility for computing the result of the operation. Only after N returns a result will M be able to observe and/or to modify it.
Given such a protocol, meta-objects are likely to be organized in a chain, so that each meta-object delegates operation handling requests to its successor. The last element of the chain is either the base-level object  or a special meta-object that delivers operations to it . We argue that this design presents some serious drawbacks: