The goal of the Coyote project is to provide support for the construction of (distributed) software that can be dynamically
customised to meet changing nonfunctional requirements. The approach to achieving this kind of customisation that is being
followed in Coyote is based on the use of computational reflection and, in the context of OO programming, metaobject protocols.