http://techiworks.com/adapter-pattern/