collect now runs in separate goroutines;