private static IDictionary<char, List<char>> Digest(IHangDictionary dictionary)
 {
     var lib = new Dictionary<char, List<char>>();
     foreach (var word in dictionary.Words)
     {
         var chars = word.ToCharArray();
         for (int index = 0; index < chars.Length-1; index++)
         {
             var chr = chars[index];
             if (lib.ContainsKey(chr))
             {
                 var bucket = lib[chr];
                 bucket.Add(chars[index+1]);
             }else
             {
                 lib.Add(chr, new List<char>{chars[index+1]});
             }
         }
     }
     return lib;
 }
 public SingleCharMarkovAgent(IHangDictionary dictionary)
 {
     Library = Digest(dictionary);
 }
 public NaturalFrequencyAgent(IHangDictionary hangDictionary) : this()
 {
     _dictionary = hangDictionary;
 }