notes for Practical Object-Oriented Design in Ruby