I'm tempted to ask to implement this as a while, and drop the iterator after you're done with dropping