Examples from the book Design Patterns in Ruby by Russ Olsen