Exercise base on "Refactoring - Improving the design of existing code"