Practical OO Design in Ruby Notes