added hashing separate chaining