code: function(domElement, model, parent) {
  	if(domElement.nodeType !== Node.ELEMENT_NODE) return;
  	
  	var attributeName;
  	
  	if(domElement.tesujiBindingContext == null) domElement.tesujiBindingContext = new ElementBindingContext(domElement, model, parent);
  	else domElement.tesujiBindingContext.rebind(model, parent);
  	
  	if(registeredComponents[domElement.nodeName]) {
  		// handle specially
  	}
  	else {
  		for(var i = 0; i < domElement.attributes.length; i++) {
  			if(domElement.attributes[i].name.search('data-') === 0) {
  				// this a data attribute
  				attributeName = domElement.attributes[i].name.substring(5);
  				
  				processDataAttribute(attributeName, domElement.attributes[i].value, domElement.tesujiBindingContext);
  			}
  		}
  	}
  	
  	if(domElement.tesujiBindingContext.keepTraversing()) {
  		for(var i = 0; i < domElement.children.length; i++) {
  			applyModelOnDOMElement(domElement.children[i], model, parent);
  		}
  	}
  
  }
docs: /* traverse DOM tree