code: function(children, insertBefore){
  		var i, l, pos,
  			firstNode = null,
  			nodeList = [];
  
  		if($.isPlainObject(children) ){
  			children = [children];
  		}
  		if(!this.children){
  			this.children = [];
  		}
  		for(i=0, l=children.length; i<l; i++){
  			nodeList.push(new FancytreeNode(this, children[i]));
  		}
  		firstNode = nodeList[0];
  		if(insertBefore == null){
  			this.children = this.children.concat(nodeList);
  		}else{
  			insertBefore = this._findDirectChild(insertBefore);
  			pos = $.inArray(insertBefore, this.children);
  			_assert(pos >= 0, "insertBefore must be an existing child");
  			// insert nodeList after children[pos]
  			this.children.splice.apply(this.children, [pos, 0].concat(nodeList));
  		}
  		if( !this.parent || this.parent.ul || this.tr ){
  			// render if the parent was rendered (or this is a root node)
  			this.render();
  		}
  		if( this.tree.options.selectMode === 3 ){
  			this.fixSelection3FromEndNodes();
  		}
  		return firstNode;
  	}
docs: Append (or insert) a list of child nodes.
  
  @param {NodeData[]} children array of child node definitions (also single child accepted)
  @param {FancytreeNode | string | Integer} [insertBefore] child node (or key or index of such).
  If omitted, the new children are appended.
  @returns {FancytreeNode} first child added
  
  @see FancytreeNode#applyPatch