     # initialize an element
     initFromElement = (el) ->
       initElement(el)
-      # init constraints
-      for constraint in constraintScopes
-        constraint._bindConstraints()
-      constraintScopes = []
+      for child of _children
+        {name, el, attributes} = child
+        console.log name, el, attributes
+        parent = new lz[name](el, attributes)
+      _children = []
+
+      _initConstraints()
+
 
     specialtags = ['handler', 'method', 'attribute', 'setter']
     # recursively init classes based on an existing element


      # console.log 'new node', @, attributes
      @sendEvent('init', @)

    # generate a callback for an event expression in a way that preserves scope, e.g. on_x="console.log(value, this, ...)"
    eventCallback = (name, script, scope, fnargs=['value']) ->

      findBindings: findBindings


  # a list of constraint scopes gathered at init time
  constraintScopes = []
  # init constraints
  _initConstraints = ->
    for constraint in constraintScopes
      constraint._bindConstraints()
    constraintScopes = []

  class Node extends Eventable
    matchConstraint = /\${(.+)}/

