using unordered_map for hash table implementation