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

      withoutLast: ->
        expr = _.clone(@expression)
        expr = expr.slice(0, expr.length-1)
        Expression.build(expression: expr)

      isError: -> @is_error



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