public CompressionHandler CreateHandler(int desiredLength = 1024*32)
		{
			var dictionary = _dictionaryOptimizer.Optimize(desiredLength);
			var training = new SubstringPacker(dictionary);

			var huffmanTableTrainer = new HuffmanTableTrainer();
			foreach (var document in _dictionaryOptimizer.Documents)
			{
				training.Pack(document, huffmanTableTrainer, null);
			}

			var packer = huffmanTableTrainer.GeneratePacker();

			return new CompressionHandler(dictionary, packer);
		}
 public CompressionHandler(byte[] dictionary, HuffmanPacker packer)
 {
     _dictionary = dictionary;
     _packer = packer;
     _substringPacker = new SubstringPacker(_dictionary);
 }