Chapter 5. Decorators – Enabling Code Reuse by Decorating