Added first draft of Adapter pattern; needs cleaning up