cache is now unordered_map