internal string pullValue(Operator op) { //Pop 2 values and perform operation try { value1 = rpnStack.Pop(); value2 = rpnStack.Pop(); } catch (InvalidOperationException) { //If stack has less than 2 values, return error and clear clear(); return "ERROR"; } //Do operation value1 = op.perform(value1, value2); //Push back onto stack rpnStack.Push(value1); //display computed value, note: in this implementation it will already be pushed before displaying return value1.ToString(); }