Rework iterators so that `last` takes precendence