hash strings instead of using dictionary. otherwise d('foo', 'baz') > d('foo', 'bar') if seen in the order 'foo', 'bar', 'baz' - at least this will make stuff like that random