open addressing hash table implementation