code: public final NodeModel<T> build() {
       	for (Map.Entry<NodeState<T>, List<ElementHandler<T>>> e : statesWithHandlers.entrySet()) {
      	    NodeState<T> state = e.getKey();
      	    // Run a sub-builder rooted here for each handler
      	    // Inject into model
      	    NodeModel<T> subModel = new NodeModel<T>(state);
      	    NodeModelBuilder<T> subBuilder = new NodeModelBuilder<T>(subModel);
      	    for (ElementHandler<T> handler : e.getValue()) {
      	        handler.build(subBuilder);
      	    }
      	    // A recursive call is necessary to pick up layers of nesting
      	    // beyond the first
      	    subBuilder.build();
      	}
          
      	return model;
      }
docs: Generate a {@link NodeModel} for use in parsing, based on the selectors
  and handlers attached to this builder.
  <p>
  This will also trigger a cascade <code>build()</code> calls on any attached
  <code>ElementHandler</code> instances.
  
  @return <code>NodeModel</code> for parsing