public MetaDataBag GetMetaDataBag(AppSettings appSettings)
        {
            MetaDataBag bag;

            Console.WriteLine("Getting metadata bag...");

            if (!File.Exists(appSettings.MetaDataBagFilePath))
            {
                Console.WriteLine("No stored bag found so retrieving meta data from LARS...");
                var timer = Stopwatch.StartNew();

                bag = new MetaDataBag
                {
                    Frameworks    = GetMetaData <FrameworkMetaData>(appSettings.CsvFileNameFrameworks),
                    Standards     = GetMetaData <LarsStandard>(appSettings.CsvFileNameStandards),
                    FrameworkAims =
                        GetMetaData <FrameworkAimMetaData>(appSettings.CsvFileNameFrameworkAims),
                    FrameworkComponentTypes =
                        GetMetaData <FrameworkComponentTypeMetaData>(
                            appSettings.CsvFileNameFrameworkComponentType),
                    LearningDeliveries =
                        GetMetaData <LearningDeliveryMetaData>(
                            appSettings.CsvFileNameLearningDelivery),
                    Fundings = GetMetaData <FundingMetaData>(appSettings.CsvFileNameFunding)
                };

                Console.WriteLine($"Time taken to get meta data from LARS: {timer.Elapsed.ToString("g")}");

                Console.WriteLine("Serializing metadata bag to file...");
                FileSerializer.SerializeToFile(appSettings.MetaDataBagFilePath, bag);
            }
            else
            {
                Console.WriteLine("Grabbing metadata bag from stored file...");
                bag = FileSerializer.DeserializeFromFile <MetaDataBag>(appSettings.MetaDataBagFilePath);
            }

            return(bag);
        }