public async Task SaveWritableSettings(Settings ToSave)
        {
            XDocument WholeDocument = await XMLDataFileHandler.LoadFile(FileAccess.ReadWrite, FileShare.Read);

            XElement DynamicSettingsElement = WholeDocument.Root.Elements(xmlns + "DynamicSettings").First();

            DynamicSettingsElement.Element(xmlns + "ImgurCommenters").ReplaceNodes(
                from C in ToSave.CommenterUsernames
                select new XElement(xmlns + "Commenter", new XAttribute("Username", C))
                );
            //DynamicSettingsElement.SetAttributeValue("PullCommentsFrequency", ToSave.PullCommentsFrequency);
            DynamicSettingsElement.SetAttributeValue("CommentsProcessedUpToInclusive", ToSave.CommentsProcessedUpToInclusive);
            DynamicSettingsElement.SetAttributeValue("PullCommentsPerUserRequestThreshhold", ToSave.RequestThreshholdPullCommentsPerUser);
            await XMLDataFileHandler.Save(WholeDocument, SavingOptions);
        }
        public Task Save(Taglist ToSave, Lock Lock)
        {
            Initialize();
            TaglistRepositoryLock DataFileLock = Lock as TaglistRepositoryLock;

            if (DataFileLock is null)
            {
                throw new ArgumentException("The supplied Lock was not returned by this class");
            }
            if (DataFileLock.Released)
            {
                throw new ArgumentException("The supplied Lock has been released");
            }
            try{
                XDocument DataDocument      = DataFileLock.LoadedDataDocument;
                XElement  OldTaglistElement = (
                    from TL in DataDocument.Root.Elements(xmlns + "Taglist")
                    where ToSave.Name.Equals(
                        ((string)TL.Attribute("Name")).Normalize(NormalizationForm.FormKD),
                        StringComparison.Ordinal
                        )
                    select TL
                    ).FirstOrDefault();
                if (!(OldTaglistElement is null))
                {
                    OldTaglistElement.Remove();
                }
                XElement NewTaglistElement = ToTaglistXML(ToSave);
                DataDocument.Root.Add(NewTaglistElement);
                return(XMLDataFileHandler.Save(DataDocument, SavingOptions, DataFileLock.Decorated));
            }finally{
                DataFileLock.Release();
            }
        }