Tree widget API, OOP or jQuery DSL way?

Tree widget API, OOP or jQuery DSL way?

Hi, I'm rewriting my Mootools tree widget into jQuery. I would like to discuss API. 

Take a look at source data before:
var children = [
    { label: 'Item 1', id: 0 },
    { label: 'Item 2', id: 1, collapsed: true, children: [
        { label: 'Item 2 - 1', id: 2 },
        { label: 'Item 2 - 2', id: 3}]
    }
];

And usage:
$('#tree').tree({ children: children });

And rendered HTML:
<div id='tree'>
    <ul>
        <li><span class='toggle'></span><span class='label'>Item 1</span></li>
        <li><span class='toggle collapsed'></span><span class='label'>Item 2</span>
            <ul>
                <li><span class='toggle'></span><span class='label'>Item 2 - 1</span></li>
                <li><span class='toggle'></span><span class='label'>Item 2 - 2</span></li>
            </ul>
        </li>
    </ul>
</div>

The issue I would like to resolve. Let's start with simple task. Create new node and inject it into root.

My OOP approach:

var rootNode = tree.getRoot();
var newNode = new Node({label: 'new node'});
rootNode.appendChild(newNode);

How jQuery approach should look like? Should I create another widget with name node? Or should I use pure jQuery? 

ok, so I'd add a new node:
var node = $("<li>text</li>").insertAfter(tree.find("li:last"));
tree.tree("refresh", node)
  
that way I can leverage the full jQuery API for selecting, traversing and manipulation

I suppose that approach of pure jQuery is to bloated. Any idea? Remember, that in OOP world, there is some base Node class, and tree, is actually RootNode, this child of base Node.