hash table implementation part1