Implementing the bridge pattern