private static void ManageHierarchyCore(IToolboxHierarchySettings settings)
        {
            if (settings == null)
            {
                ToolboxEditorHierarchy.IsOverlayAllowed = false;
                ToolboxEditorHierarchy.RepaintHierarchyOverlay();
                return;
            }

            //enable/disable the core GUI function
            ToolboxEditorHierarchy.IsOverlayAllowed = settings.UseToolboxHierarchy;

            ToolboxEditorHierarchy.DrawHorizontalLines = settings.DrawHorizontalLines;
            ToolboxEditorHierarchy.ShowSelectionsCount = settings.ShowSelectionsCount;
            ToolboxEditorHierarchy.DrawSeparationLines = true;

            ToolboxEditorHierarchy.RemoveAllowedHierarchyContentCallbacks();

            //create custom drawers using stored data
            for (var i = 0; i < settings.RowDataItemsCount; i++)
            {
                ToolboxEditorHierarchy.CreateAllowedHierarchyContentCallbacks(settings.GetRowDataItemAt(i));
            }

            ToolboxEditorHierarchy.RepaintHierarchyOverlay();
        }