/// <summary>
        /// Method to help initilize
        /// </summary>
        private static Trei InitializeTrei()
        {
            Console.WriteLine($"Initializing Trei with words");
            var trei          = new Trei();
            var wordCount     = 0;
            var printInterval = 300;

            using (var stream = GetWordStream())
            {
                var word = stream.ReadLine();
                while (word != null)
                {
                    if (trei.AddWord(word))
                    {
                        wordCount++;
                    }
                    if ((wordCount % printInterval) == 0)
                    {
                        Console.WriteLine($"Completed {wordCount} words");
                    }
                    word = stream.ReadLine();
                }
            }

            Console.WriteLine($"Completed Trei {wordCount} words");
            return(trei);
        }
        /// <summary>
        /// Initializes WordSearch with dictionary words
        /// </summary>
        public async Task Initialize()
        {
            if (initialized)
            {
                return;
            }

            //Start initialization in background
            await Task.Factory.StartNew(() =>
            {
                trei        = treiInitializer.Value;
                autoCorrect = autoCorrectInitializer.Value;
                initialized = true;
            }
                                        );
        }