add key fetch and cache.