Practical_Object-Oriented_Design,_An_Agile_Primer_Using_Ruby