Adapter pattern impl