ACHIEVING FOUNDATIONAL DESIGN IN JAVA: A REAL-WORLD HANDBOOK