Example code from "Refactoring", M. Fowler