private void BtnRead_Click(object sender, RoutedEventArgs e)
        {
            scoresData = ReadInScoresBinFile(scoresbinFilePath);
            if (scoresData == null)
            {
                logger.Log("ERROR - Scores Data is empty");
            }
            else
            {
                //verify here
                if (IsFileModelCompatible(scoresBinFileOrig, scoresData.GenerateByteData()))
                {
                    if (!string.IsNullOrEmpty(songcachebinFilePath))
                    {
                        ReadInSongCacheBinFile(songcachebinFilePath);
                        logger.Log("Enriching song entries with folder path names");
                        scoresData.ScoreEntries.ForEach(x => x.SongFolderName = FilepathEnricher.Enrich(x.GetSongIdentifierAsBytes(), songCacheBinFile));
                        logger.Log("Finished enriching song entries with folder path names");
                    }

                    grdScores.ItemsSource = scoresData.ScoreEntries;
                }
                else
                {
                    //provide error message and contact info
                    logger.Log("Error, the scores file is not compatible with the program, will cause data loss or worse, not loading. Please contact the developer to resolve this mismatch.");
                }
            }
        }
        private void BtnWrite_Click(object sender, RoutedEventArgs e)
        {
            if (scoresData == null)
            {
                logger.Log("ERROR - Scores Data is empty, read it in from a file first");
            }
            else
            {
                try
                {
                    var originalDirectoryPath = System.IO.Path.GetDirectoryName(scoresbinFilePath);
                    var filepath       = originalDirectoryPath + "\\scores_modified_" + DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss") + ".bin";
                    var backupFilepath = originalDirectoryPath + "\\scores_BACKUP_" + DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss") + ".bin";
                    logger.Log("Backing up original file to: " + backupFilepath);

                    File.Copy(scoresbinFilePath, backupFilepath, true);

                    logger.Log("Writing out to: " + scoresbinFilePath);
                    SaveBinaryFile(scoresData.GenerateByteData(), scoresbinFilePath);
                }
                catch (IOException iox)
                {
                    Console.WriteLine(iox.Message);
                }
            }
        }