applied short term for HeadFirstDesignPatterns