We now turn to a rather special form of MappingMapping, the CmpMapCmpMap. The Mappings we have considered so far have been atomic, in the sense that they perform pre-defined elementary transformations. A CmpMap, however, is a compound Mapping. In essence, it is a framework for containing other Mappings and its purpose is to allow those Mappings to work together in various combinations while appearing as a single ObjectObject. A CmpMap's behaviour is therefore not pre-defined, but is determined by the other Mappings it contains.