add hash table and test code