New iterator logic passes all old tests