private static void DeserializeData(byte[] data)
        {
            string legacyFilepath = null;

            try {
                legacyFilepath = LoadLegacyData(data);
            } catch (Exception) {
                // data isn't legacy compatible. Probably new format or missing data.
            }

            if (legacyFilepath != null)
            {
                Log.Message("Converting Legacy Config Data.");
                _configuration = Configuration.LoadConfigurationFromFile(legacyFilepath);
            }
            else
            {
                if (data.Length == 0)
                {
                    Log.Message("Legacy data was empty. Checking for new Save data.");
                    data = _serializableData.LoadData(DataId);
                }

                try {
                    if (data.Length != 0)
                    {
                        Log.Message("Loading Data from New Load Routine!");
                        var memoryStream = new MemoryStream();
                        memoryStream.Write(data, 0, data.Length);
                        memoryStream.Position = 0;

                        var binaryFormatter = new BinaryFormatter();
                        _configuration = (Configuration)binaryFormatter.Deserialize(memoryStream);
                    }
                } catch (Exception e) {
                    Log.Error($"Error deserializing data: {e.Message}");
                }
            }
            ConfigLoaded = true;

            LoadDataState();
            StateLoaded = true;

            //Log.Message("Setting timer to load data.");
            //var timer = new Timer(1500);
            //timer.Elapsed += (sender, args) =>
            //{
            //    if (!ConfigLoaded || StateLoaded) return;
            //    Log.Message("Loading State Data from Save.");
            //    var t = new Thread(LoadDataState);
            //    t.Start();
            //    //LoadDataState();
            //    StateLoaded = true;
            //};
            //timer.Start();
        }