internal static void InitializeSettings(string assetGuid)
        {
            settingsGuid = assetGuid;
            settingsPath = AssetDatabase.GUIDToAssetPath(assetGuid);
            //try to get proper settings asset from provided guid
            var settings = AssetDatabase.LoadAssetAtPath <ToolboxEditorSettings>(settingsPath);

            if (settings == null)
            {
                ToolboxEditorLog.KitInitializationWarning(settingsType);
                return;
            }

            Settings = settings;
            Settings.AddOnSettingsUpdatedListener(() =>
            {
                //perform separated data models update
                ToolboxDrawerUtility.PerformData();
                ToolboxProjectUtility.PerformData();
                ToolboxHierarchyUtility.PerformData();

                //perform additional repaint to update GUI
                ToolboxEditorProject.RepaintProjectOverlay();
                ToolboxEditorHierarchy.RepaintHierarchyOverlay();
            });

            //initialize core functionalities
            ToolboxDrawerUtility.PerformData(Settings);
            ToolboxProjectUtility.PerformData(Settings);
            ToolboxHierarchyUtility.PerformData(Settings);
        }
        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.RowDataTypes.Count; i++)
            {
                ToolboxEditorHierarchy.CreateAllowedHierarchyContentCallbacks(settings.RowDataTypes[i]);
            }

            ToolboxEditorHierarchy.RepaintHierarchyOverlay();
        }