added consistent hashing