design patterns in ruby.