Use IEnumerable / yield to return batch results.  Should increase thru-put