Allow a developer to modify the datasource tree. There are limitations
on how this tree can be modified. The developer may remove entire
sub-trees, but not intermediate nodes within the tree. Once a node is
removed, it should not be added back into the tree. Nodes can be added
freely to the tree. When modifying the tree, one should keep in mind
that the root of the tree is always set to invisible.
The following is the structure of the datasource tree when this method
is written: