Step-by-step refactoring of the example code in Martin Fowler's "Refactoring - Improving the Design of Existing", Chapter 1