/// <summary>Creates the display elements for the given ModTagCategory.</summary>
        private GameObject CreateCategoryDisplayInstance(ModTagCategory category,
                                                         GameObject prefab,
                                                         RectTransform container)
        {
            GameObject displayGO = GameObject.Instantiate(prefab,
                                                          container);
            displayGO.name = category.name;

            ModTagCategoryDisplay display = displayGO.GetComponent<ModTagCategoryDisplay>();
            display.Initialize();
            display.DisplayCategory(category);

            ToggleGroup toggleGroup = null;
            if(!category.isMultiTagCategory)
            {
                toggleGroup = display.gameObject.AddComponent<ToggleGroup>();
                toggleGroup.allowSwitchOff = true;
            }

            ModTagContainer tagContainer = displayGO.GetComponent<ModTagContainer>();
            foreach(ModTagDisplay tagDisplay in tagContainer.tagDisplays)
            {
                Toggle tagToggle = tagDisplay.GetComponent<Toggle>();
                tagToggle.isOn = this.m_selectedTags.Contains(tagDisplay.data.tagName);
                tagToggle.group = toggleGroup;
            }

            return displayGO;
        }
        // ---------[ UI FUNCTIONALITY ]---------
        private static GameObject CreateCategoryDisplayInstance(ModTagCategory category,
                                                                List <string> selectedTags,
                                                                GameObject prefab,
                                                                RectTransform container)
        {
            GameObject displayGO = GameObject.Instantiate(prefab,
                                                          new Vector3(),
                                                          Quaternion.identity,
                                                          container);

            displayGO.name = category.name;

            ModTagCategoryDisplay display = displayGO.GetComponent <ModTagCategoryDisplay>();

            display.Initialize();
            display.DisplayCategory(category);

            ToggleGroup toggleGroup = null;

            if (!category.isMultiTagCategory)
            {
                toggleGroup = display.gameObject.AddComponent <ToggleGroup>();
                toggleGroup.allowSwitchOff = true;
            }

            ModTagContainer tagContainer = displayGO.GetComponent <ModTagContainer>();

            foreach (ModTagDisplay tagDisplay in tagContainer.tagDisplays)
            {
                Toggle tagToggle = tagDisplay.GetComponent <Toggle>();
                tagToggle.isOn  = selectedTags.Contains(tagDisplay.data.tagName);
                tagToggle.group = toggleGroup;
                // TODO(@jackson): Need to register?
            }

            return(displayGO);
        }