           expression.append(number_with_this_val)
 
       invoke: (expression)->
-        foe = _FinalOpenSubExpressionApplcation.build((expr)=> @onFinalExpression(expr))
-        new_expression = foe.invoke(expression)
-        if foe.wasFound()
-          new_expression
-        else
-          @onFinalExpression(expression)
+        _FinalOpenSubExpressionApplcation.build((expr)=> @onFinalExpression(expr)).
+          invokeOrDefault(expression)
 
     class_mixer(AppendNumber)
 
     class ExponentiateLast
+      initialize: (@opts={})->
       invoke: (expression)->
         last = expression.last()
 

    exports =
      calculate: Calculate
      square: Square
      decimal: Decimal
      append_number: AppendNumber
      exponentiate_last: ExponentiateLast
      append_multiplication: AppendMultiplication
      append_addition: AppendAddition
      subtraction: Subtraction
      negate_last: Negation
      open_sub_expression: OpenSub
      close_sub_expression: CloseSub
      division: Division
      pi: Pi
      square_root: SquareRoot


          new_last = comps.number.build(value: 0)
          new_last = new_last.futureAsDecimal()
          expression.append(new_last)

      invoke: (expression)->
        _FinalOpenSubExpressionApplcation.build((expr)=> @onFinalExpression(expr)).
          invokeOrDefault(expression)

    class_mixer(AppendDecimal)

    class AppendNumber
      initialize: (@opts)->
