implement the hash table