  We present an algorithm for implementing a store-collect object in an
asynchronous crash-prone message-passing dynamic system, where nodes
continually enter and leave. The algorithm is very simple and efficient,
requiring just one round trip for a store operation and two for a collect. We
then show the versatility of the store-collect object for implementing
churn-tolerant versions of useful data structures, while shielding the user
from the complications of the underlying churn. In particular, we present
elegant and efficient implementations of atomic snapshot and generalized
lattice agreement objects that use store-collect.
