Following along with Avdi's excellent book and learning a thing or two about proper OOD.