add iterator