added consistent hash