implemented hashing