Implementation of the Bridge pattern.
Implementation of the composite pattern.