streaming datasets is smarter; changed to a dataset iterator to avoid memory loading