todo: huffman encode