added client hashing logic