more complete consistent hash