data compression, string hash, learn a lot
the first two problems, easy, good, TODO