CONQUERING OBJECT-ORIENTED DESIGN USING JAVA: A DETAILED HANDBOOK