changed distribute to a simple round-robin distribution, thus avoiding the need to serialize and hash the values. not sure what benefit that would have provided, but in the worse case, it could have caused all values to be sent to the same thread initially!