seems to be working! could use more thorough tests, now need to write affinity_rehash