refactor
consistent hashing