private void OnLoadFilterGrid(DisplayData data)
        {
            try
            {
                if (_isBeingDestroyed)
                {
                    return;
                }

                QuickLogger.Debug($"OnLoadFilterGrid : {data.ItemsGrid}", true);

                //_filterGrid.ClearPage();

                if (_trackedFilterState.Count <= 0)
                {
                    var grouped = _mono.OreGenerator.AllowedOres;

                    for (int i = 0; i < grouped.Count; i++)
                    {
                        GameObject buttonPrefab = Instantiate(data.ItemsPrefab);

                        if (buttonPrefab == null || data.ItemsGrid == null)
                        {
                            if (buttonPrefab != null)
                            {
                                Destroy(buttonPrefab);
                            }
                            return;
                        }

                        buttonPrefab.transform.SetParent(data.ItemsGrid.transform, false);
                        var toggle = buttonPrefab.GetComponent <Toggle>();
                        toggle.isOn = false;
                        buttonPrefab.SetActive(false);
                        var oreIndex = i;
                        toggle.onValueChanged.AddListener(delegate {
                            OnButtonClick("FilterToggleBTN", new FilterBtnData {
                                TechType = grouped.ElementAt(oreIndex), Toggle = toggle
                            });
                        });

                        var itemName = buttonPrefab.GetComponentInChildren <Text>();
                        itemName.text = TechTypeExtensions.Get(Language.main, grouped.ElementAt(i));

                        if (_trackedFilterState.ContainsKey(grouped.ElementAt(i)))
                        {
                            toggle.isOn = _trackedFilterState[grouped.ElementAt(i)].isOn;
                        }
                        else
                        {
                            _trackedFilterState.Add(grouped.ElementAt(i), toggle);
                        }
                    }
                }

                foreach (KeyValuePair <TechType, Toggle> toggle in _trackedFilterState)
                {
                    toggle.Value.gameObject.SetActive(false);
                }

                var trackedFilterState = _trackedFilterState;

                if (data.EndPosition > trackedFilterState.Count)
                {
                    data.EndPosition = trackedFilterState.Count;
                }

                for (int i = data.StartPosition; i < data.EndPosition; i++)
                {
                    _trackedFilterState.ElementAt(i).Value.gameObject.SetActive(true);
                }

                _filterGrid.UpdaterPaginator(_trackedFilterState.Count);
            }
            catch (Exception e)
            {
                QuickLogger.Error("Error Caught");
                QuickLogger.Error($"Error Message: {e.Message}");
                QuickLogger.Error($"Error StackTrace: {e.StackTrace}");
            }
        }