Oops, you're right, I guess I just got a bit confused by the fact that `combine()` also takes a `CollectableCollector` argument... I think it would be a lot clearer if `combine()` had a `Map` argument, and `CollectableCollector` had a `removeCollectedValues()` method (maybe with a threshold argument) that gave you a copied the store into a `Map`, encapsulating the thread safety issues in the collector.