ACHIEVING LOW-LEVEL DESIGN IN JAVA: A PRACTICAL HANDBOOK