////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void Awake()
        {
            if (CursorDataProvider == null)
            {
                CursorDataProvider = FindObjectOfType <HoverCursorDataProvider>();
            }

            if (ProximityProvider == null)
            {
                ProximityProvider = GetComponent <HoverRendererUpdater>();
            }

            if (InteractionSettings == null)
            {
                InteractionSettings = (GetComponent <HoverInteractionSettings>() ??
                                       FindObjectOfType <HoverInteractionSettings>());
            }

            if (CursorDataProvider == null)
            {
                Debug.LogWarning("Could not find 'CursorDataProvider'.");
            }

            if (ProximityProvider == null)
            {
                //TODO: show warning elsewhere? the renderer is typically added *after* this
                //Debug.LogWarning("Could not find 'ProximityProvider'.");
            }

            if (InteractionSettings == null)
            {
                Debug.LogWarning("Could not find 'InteractionSettings'.");
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public void PerformBuild()
        {
            gameObject.AddComponent <TreeUpdater>();

            HoverItem item = gameObject.AddComponent <HoverItem>();

            item.ItemType = ItemType;

            HoverItemHighlightState highState = gameObject.AddComponent <HoverItemHighlightState>();

            gameObject.AddComponent <HoverItemSelectionState>();

            HoverRendererUpdater rendUp = gameObject.AddComponent <HoverRendererUpdater>();

            rendUp.ButtonRendererPrefab = ButtonRendererPrefab;
            rendUp.SliderRendererPrefab = SliderRendererPrefab;
            highState.ProximityProvider = rendUp;

            rendUp.TreeUpdate();             //forces the renderer prefab to load
        }