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 ManageProjectCore(IToolboxProjectSettings settings)
        {
            if (settings == null)
            {
                ToolboxEditorProject.IsOverlayAllowed = false;
                ToolboxEditorProject.RepaintProjectOverlay();
                return;
            }

            var validateData = !IsInitialized;

            //enable/disable the core GUI function
            ToolboxEditorProject.IsOverlayAllowed = settings.UseToolboxProject;

            ToolboxEditorProject.LargeIconScale = settings.LargeIconScale;
            ToolboxEditorProject.SmallIconScale = settings.SmallIconScale;
            ToolboxEditorProject.LargeIconPaddingRatio = settings.LargeIconPadding;
            ToolboxEditorProject.SmallIconPaddingRatio = settings.SmallIconPadding;

            ToolboxEditorProject.ClearCustomFolders();

            //create custom folders using stored data
            for (var i = 0; i < settings.CustomFolders.Count; i++)
            {
                ToolboxEditorProject.CreateCustomFolder(settings.CustomFolders[i]);
            }

            ToolboxEditorProject.RepaintProjectOverlay();
        }