CONQUERING LOW-LEVEL DESIGN IN JAVA: A PRACTICAL GUIDE