 			private var _linkableObjectName:String;
 			private var _linkableObjectTypeFilter:Class = null;
 			private var _overrideSelectedItem:WeaveTreeItem;
-			private var _treeChanged:Boolean;
-			private const rootWatcher:LinkableWatcher = newLinkableChild(this, LinkableWatcher, invalidateList, true);
+			private var _rootObject:ILinkableObject;
+			private var _treeChanged:Boolean;
 			
 			override public function initialize():void
 			{

				if (iowd)
					description = iowd.getDescription();
				else if (item.dependency is IAttributeColumn)
					description = ColumnUtils.getTitle(item.dependency as IAttributeColumn);
				
				var inParens:String = editorLabel || description;
				if (editorLabel && description)


			public function set rootObject(value:ILinkableObject):void
			{
				if (_rootObject == value)
					return;
				
				if (_rootObject)
					getCallbackCollection(_rootObject).removeCallback(invalidateList);
				
				_rootObject = value;
				
				if (_rootObject)
					getCallbackCollection(_rootObject).addGroupedCallback(this, invalidateList);

				if (_rootObject == WeaveAPI.globalHashMap)
				{
					_linkableObjectName = "Weave";
				}
				else if (_rootObject)
				{
					var path:Array = (WeaveAPI.SessionManager as SessionManager).getPath(WeaveAPI.globalHashMap, _rootObject);
					_linkableObjectName = path ? path[path.length - 1] : null;
				}
				
