An example of preparatory refactoring - Martin Fowler