Only pass over iterable once, be cleaner, don't bring everything into memory ususing Mutability