         else # not closable, not handled, return
           expr
 
+      invoke: (@action)->
+        @findAndPerformAction(@expr)
+
       wasFound: -> @found
 
       updateWithNewSubexp: (expr, subexp)->

        _OverrideIfOperatorOrAppend.build(expression).with comps.multiplication.build()

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

    class_mixer(AppendMultiplication)


    class AppendDivision
      invoke: (expression)->
        _FinalOpenSubExpressionApplcation.build((expr)=>
          _OverrideIfOperatorOrAppend.build(expr).with comps.division.build()).
          invokeOrDefault(expression)
    class_mixer(AppendDivision)


    class AppendAddition
      invoke: (expression)->
        _FinalOpenSubExpressionApplcation.build(
          (expression)->
            _OverrideIfOperatorOrAppend.build(expression).with comps.addition.build()
          ).invokeOrDefault(expression)

    class_mixer(AppendAddition)


    class AppendSubtraction
      invoke: (expression)->
        _FinalOpenSubExpressionApplcation.build(
          (expression)->
            _OverrideIfOperatorOrAppend.build(expression).with comps.subtraction.build()
          ).invokeOrDefault(expression)

    class_mixer(AppendSubtraction)


          expression.append(new_last)

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

    class_mixer(AppendDecimal)

