add string hash and lru cache