       if parent instanceof Node
         # store references to parent and children
         @parent = parent
-        parent[@name] = @ if @name?
-        parent.subnodes ?= []
+        parent[@name] = @ if @name
         parent.subnodes.push(@)
         parent.trigger('subnodes', @) if parent.events?['subnodes']
 

      # console.log 'matched constraint', name, @, expression
      return

    setAttribute: (name, value) ->
      if @[name] != value
        constraint = value.match?(matchConstraint)

        # console.log 'MemberExpression', name, acorn.stringify n
        return true

    applyConstraint: (name, expression) ->
      @constraints ?= {}
      @constraints[name] = compileScript('return ' + expression).bind(@)
