Code being refactored in Fowler's book - C# version based on Code Project one.