I can only guess you mean the "else" is unnecessary? If so, that's likely because I don't understand how "yield" works very well. When "next" is used to get the next element generated, does the function "pick up where it left off" or does it start fresh?