Implementing the Proxy design pattern