base TreeView component