Object Oriented Thinking In Reverse