My solutions to problems from C# 3.0 Design Patterns