protect collection from change during iteration