Adapter_Pattern
Bridge Pattern