Adapter pattern implementation