Chapter 5. The Proxy Pattern – Controlling Object Access