code: function(oData, oParent, expanded) {
  
          this.data = {};
          this.children   = [];
          this.index      = YAHOO.widget.TreeView.nodeCount;
          ++YAHOO.widget.TreeView.nodeCount;
          this.contentElId = "ygtvcontentel" + this.index;
          
          if (Lang.isObject(oData)) {
              for (var property in oData) {
                  if (oData.hasOwnProperty(property)) {
                      if (property.charAt(0) != '_'  && !Lang.isUndefined(this[property]) && !Lang.isFunction(this[property]) ) {
                          this[property] = oData[property];
                      } else {
                          this.data[property] = oData[property];
                      }
                  }
              }
          }
          if (!Lang.isUndefined(expanded) ) { this.expanded  = expanded;  }
          
          this.logger     = new YAHOO.widget.LogWriter(this.toString());
  
          /**
           * The parentChange event is fired when a parent element is applied
           * to the node.  This is useful if you need to apply tree-level
           * properties to a tree that need to happen if a node is moved from
           * one tree to another.
           *
           * @event parentChange
           * @type CustomEvent
           */
          this.createEvent("parentChange", this);
  
          // oParent should never be null except when we create the root node.
          if (oParent) {
              oParent.appendChild(this);
          }
      }
docs: /*
  spacerPath: "http://l.yimg.com/a/i/space.gif",
  expandedText: "Expanded",
  collapsedText: "Collapsed",
  loadingText: "Loading",
   
  Initializes this node, gets some of the properties from the parent
  @method init
  @param oData {object} a string or object containing the data that will
  be used to render this node
  @param oParent {Node} this node's parent node
  @param expanded {boolean} the initial expanded/collapsed state