public GreekDictionary Parse()
        {
            GreekDictionary dictionary = new GreekDictionary();

            using (var stream = File.OpenRead("dodson.xml"))
            {
                var serializer = new XmlSerializer(typeof(TEI));
                var result = serializer.Deserialize(stream) as TEI;
                Console.WriteLine("parsed dictionary");

                foreach(var entry in result.entry)
                {
                    Console.WriteLine("##############");
                    Console.WriteLine(entry.n);

                    int strongNumber = 0;
                    string greek = string.Empty;

                    var splits = (entry.n ?? string.Empty).Split(' ');
                    if (splits != null && splits.Length == 3)
                    {
                        int.TryParse(splits[2], out strongNumber);
                        greek = splits[0].Trim();
                    }

                    if (strongNumber > 0)
                    {
                        var word = new WordDef();
                        word.StrongNumber = strongNumber;
                        word.Greek = greek;

                        foreach (var form in entry.GetformRows())
                        {
                            word.GreekOrth = form.orth;
                            foreach (var def in form.GetdefRows())
                            {
                                Console.WriteLine("def: " + def.role + " " + def.def_Text);
                                if (def.role == "brief")
                                    word.Definition = def.def_Text;
                                if (def.role == "full")
                                    word.LongDefinition = def.def_Text;
                            }
                        }

                        dictionary.AddWord(word);
                    }
                }
            }

            var egerthe = dictionary.FindWord(1453);
            var json = dictionary.ToJavaScript();

            return dictionary;
        }
        string SentenceToHtml(GreekDictionary dictionary, MyObjects.Verse verse, MyObjects.Book book, MyObjects.Chapter chapter)
        {
            var sb = new StringBuilder();

            foreach (var w in verse.Words)
            {
                if (w.Greek == "<br />")
                {
                    sb.AppendLine("</div>");
                    sb.AppendLine("<br />");
                    sb.AppendLine("<div class=\"flex-container\">");
                }
                else if (w.StrongNumber > 0)
                {
                    sb.Append("<span ng-click='selectWord(" + w.StrongNumber + ", $event)'" + " strongnumber=\"" + w.StrongNumber + "\">");
                    sb.Append(w.Prefix);
                    sb.Append(w.Greek);
                    sb.Append(w.Suffix);
                    sb.Append("</span>");
                }
                else
                {
                    sb.Append("<span>");
                    sb.Append(w.Greek);
                    sb.Append("</span>");
                }

                var word = dictionary.FindWord(w.StrongNumber);
                if (word != null)
                {
                    word.AddUsage(w.Greek, book.BookNameEnglish, chapter.Id.ToString(), verse.Id, verse.ToString());
                    dictionary.AddLookup(w.Greek, word);
                }
            }

            return sb.ToString();
        }