       (new ExpressionEvaluation(@subexpression)).results()
 
   class ExpressionComponent
-    handled: ->
-      @is_handled = true
-    isHandled: ->
-      @is_handled
+    isOperator: -> false
+    isNumber: -> false
     eval: -> @
 
   class Number extends ExpressionComponent
     initialize: (@opts)->
       @val = @opts.value
-
+      
+    isNumber: -> true
+    
     negated: ->
       value = @val * -1
       Number.build(value: value)


  class Pi extends ExpressionComponent
    toDisplay: -> "&pi;"
    eval: ->
      Number.build(value: Math.PI)

  class_mixer(Pi)

  class Addition extends ExpressionComponent
    toDisplay: -> "+"
    eval: (evaluation, pass)->
      return if pass != "addition"


  class_mixer(Multiplication)

  class Division extends ExpressionComponent
    isOperator: -> true
    toDisplay: -> "&divide;"
    eval: (evaluation, pass)->
      return if pass != "multiplication"
