ACHIEVING GROUND-LEVEL DESIGN IN JAVA: A PRACTICAL TUTORIAL