proper hashing