added hash table implementation