Adapter and Proxy pattern