ACHIEVING LOW-LEVEL PLANNING IN JAVA: A DETAILED EXPLANATION