make first() and one() idempotent and prevent them from effecting iteration position