hash function added