       isNumber: -> false
       preceedingSubexpression: -> false
       clone: -> @ # by default, cloning does nothing
+
+
+    class Equals extends ExpressionComponent
+      toString: -> "="
+      isOperator: -> true
+    class_mixer(Equals)
+
 
     class Expression extends ExpressionComponent
       @buildWithContent: (content)->

      subtraction: Subtraction
      exponentiation: Exponentiation
      pi: Pi
      blank: Blank

    return components

        @klass.build base: @base(), power: power

      toString: ->
        "^(b: #{@base().toString()}, p: #{@power().toString()})"

      isPowerOpen: -> @power().isOpen()

    class_mixer(Exponentiation)

    class Pi extends ExpressionComponent
      toString: -> "PI"
    class_mixer(Pi)

    class Addition extends ExpressionComponent
      toString: -> "Add"
      isOperator: -> true
    class_mixer(Addition)

    class Subtraction extends ExpressionComponent
      isOperator: -> true
      toString: -> "Sub"
    class_mixer(Subtraction)

    class Multiplication extends ExpressionComponent
      isOperator: -> true
      toString: -> "Mult"
    class_mixer(Multiplication)

    class Division extends ExpressionComponent
      isOperator: -> true
      toString: -> "Div"
    class_mixer(Division)

    class Blank extends ExpressionComponent
      toString: -> "Blnk"
    class_mixer(Blank)

    components =
