public void OnSettingsUI(UIHelperBase helper)
        {
            Config = Configuration.Instance;
            Config.FlushStagedChanges(); //make sure no prior changes are still around
            //Generate arrays of colors and naming strategies
            String[] ColorStrategies = Enum.GetNames(typeof(ColorStrategy));
            String[] NamingStrategies = Enum.GetNames(typeof(NamingStrategy));
            UIHelperBase group = helper.AddGroup(Constants.ModName);
            group.AddDropdown("Color Strategy", ColorStrategies, (int)Config.ColorStrategy, Config.ColorStrategyChange);
            group.AddDropdown("Naming Strategy", NamingStrategies, (int)Config.NamingStrategy, Config.NamingStrategyChange);
            group.AddSpace(5);

            group.AddGroup("Advanced Settings");
            group.AddSlider("Max Different Color Picks", 1f, 20f, 1f, (float)Config.MaxDiffColorPickAttempt, Config.MaxDiffColorPickChange);
            group.AddSlider("MinColorDifference", 1f, 100f, 5f, (float)Config.MinColorDiffPercentage, Config.MinColorDiffChange);
            group.AddCheckbox("Debug", logger.debug, logger.SetDebug);
            group.AddButton("Save", Config.Save);
        }
        public override void OnCreated(IThreading threading)
        {
            logger.Message("===============================");
            logger.Message("Initializing auto color monitor");
            logger.Message("Initializing colors");
            RandomColor.Initialize();
            CategorisedColor.Initialize();
            GenericNames.Initialize();

            logger.Message("Loading current config");
            _config = Configuration.Instance;
            _colorStrategy = SetColorStrategy(_config.ColorStrategy);
            _namingStrategy = SetNamingStrategy(_config.NamingStrategy);
            _usedColors = new List<Color32>();

            logger.Message("Found color strategy of " + _config.ColorStrategy);
            logger.Message("Found naming strategy of " + _config.NamingStrategy);

            _initialized = true;

            logger.Message("done creating");
            base.OnCreated(threading);
        }