       Serenade.bindEvent element, ast.name, domUpdated
 
   attribute: (ast, node, model, controller) ->
+    return Property.binding(ast, node, model, controller) if ast.name is "binding"
     element = node.element
     update = ->
       value = format(model, ast.value, ast.bound)

      preventDefault(e) if ast.preventDefault
      controller[ast.value](model, node.element, e)

  twoWayBinding: (ast, node, model, controller) ->
    element = node.element
    node.ast.name in ["input", "textarea", "select"] or throw SyntaxError "invalid node type #{node.ast.name} for two way binding"


    element.setAttribute('class', ast.classes.join(' ')) if ast.classes?.length

    for property in ast.properties
      action = Property[property.scope]
      if action
        action(property, node, model, controller)
      else
        throw SyntaxError "#{property.scope} is not a valid scope"

    for child in ast.children
      compile(child, model, controller).append(element)
