       append: (new_last)->
         expr = _.clone(@expression)
         expr.push new_last
-        Expression.build(expression: expr)
+        @clone(expression: expr)
 
       replaceLast: (new_last)->
         @withoutLast().append(new_last)


      clone: (new_vals={})->
        data =
          expression: _.clone(@expression)
          is_error: @is_error
          is_open: @is_open
        @klass.build(_.extend({}, data, new_vals))

      isOperator: -> false
      isNumber: -> false
      preceedingSubexpression: -> false
      clone: -> @ # by default, cloning does nothing

    class Expression extends ExpressionComponent
      @buildWithContent: (content)->
