replaced unordered_map