Adapter pattern implementation.