Refactoring exercise from Chapter 3 of 'Test-Driven Development in Microsoft .NET'