/// <summary>
        /// Load current options data.
        /// </summary>
        /// <returns></returns>
        private static XmlOptionsData Load()
        {
            XmlOptionsData xmlData = null;

            Stream stream = null;

            DateTime xmlFileTime = new DateTime();//used to compare against InstallLanguage.txt

            try
            {
                // Try the real filename first.
                string xmlFileName = FileName();

                if (Storage4.FileExists(xmlFileName, StorageSource.All))
                {
                    xmlFileTime = Storage4.GetLastWriteTimeUtc(xmlFileName, StorageSource.All);
                    stream      = Storage4.OpenRead(xmlFileName, StorageSource.All);
                    XmlSerializer serializer = new XmlSerializer(typeof(XmlOptionsData));
                    xmlData = serializer.Deserialize(stream) as XmlOptionsData;
                }
                else
                {
                    // If not there, try the back compat version.
                    xmlFileName = BackCompatFileName();

                    if (Storage4.FileExists(xmlFileName, StorageSource.All))
                    {
                        xmlFileTime = Storage4.GetLastWriteTimeUtc(xmlFileName, StorageSource.All);
                        stream      = Storage4.OpenRead(xmlFileName, StorageSource.All);
                        XmlSerializer serializer = new XmlSerializer(typeof(XmlOptionsData));
                        xmlData = serializer.Deserialize(stream) as XmlOptionsData;
                    }
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine(e.Message);
            }

            if (stream != null)
            {
                Storage4.Close(stream);
            }

            //Check for override of language.
            if (xmlData != null && Storage4.FileExists(InstalledLanguageFileName(), StorageSource.All))
            {
                var langFileTime = Storage4.GetLastWriteTimeUtc(InstalledLanguageFileName(), StorageSource.All);
                //If InstallerLanguage.txt is later than selected language.
                if (langFileTime > xmlFileTime)
                {
                    //Update language to match newly installed version.
                    xmlData.langauge = GetInstallerLanguageOrDefault();
                    Save();
                }
            }

            return(xmlData);
        }   // end of Load()
        /// <summary>
        /// Load or create the options data.
        /// </summary>
        private static void Init()
        {
            _instance = Load();

            // If not loaded, create a new default.
            if (_instance == null)
            {
                _instance = new XmlOptionsData();

                //Set default language from InstallerLanguage file(if any).
                _instance.langauge = GetInstallerLanguageOrDefault();

                //Save new config.
                Save();
            }
        }   // end of Init()