added hashed strings (slower than regular strings); and a cache that we must make stronger