It's easy to make an incredible mess of this one. My solution is only 27 lines long. First, try arguments in the write-up's examples with args.java to be sure you understand the arguments you'll be getting. Then make the one-argument case work: % java eval 7 7 Have 7 end up in an int called 'value'. Next, observe that java eval 7 + 10 can be thought of as "doing" +10 to the int 'value'. Continuing, think of java 7 + 10 + 3 as 7 +10 +3 Think of the general form of expressions for eval as an initial value followed by zero or more operator & operand pairs. Once you've got eval working for expressions only involving the + operator, then implement the other operators.