public double solveExpression(List<String> expression) throws ExpressionException {
        for (String s : expression) {
            if (isNumber(s))
                numberStack.push(Double.parseDouble(s));
            else {
                dealWithOperator(s.charAt(0));
            }
        }
        while (!operatorStack.empty()) {
            operation();
        }
        return numberStack.peek();
    }