why? this works fine, and I would still have to call iterator++ in the else case?