examples and drills for design patterns