Object Oriented Design in Ruby