Practicing Object Oriented Design