       radicand: @radicand_value
     @klass.build(_.extend({}, data, new_vals))
 
+  subExpressions: ->
+    [@degree(), @radicand()]
+
 ttm.class_mixer(Root)
 
 class Variable extends ExpressionComponent
   initialize: (opts={})->
+    super
     @name_value = opts.name
   name: -> @name_value
   toString: ->

  initialize: ->
    @id = 0
  next: ->
    ++@id;
  current: ->
    @id;

ttm.class_mixer(ExpressionIDSource)


#= require lib/math/base

class ExpressionComponent
  initialize: (opts={})->
    @id_value = opts.id
  isOperator: -> false
  isNumber: -> false
  preceedingSubexpression: -> false
  clone: -> @klass.build()
  id: -> @id_value
  subExpressions: -> []

class Equals extends ExpressionComponent
  toString: -> "="
