Right, next is the new current. So, we start at nothing, call next (it returns true and populates value), and create a tuple. When called again, and let's say we only had 1 element, next returns false and does not populate value, so similarly we return false to signal that there are no more values to consume.