hmm I think we can drop the `hasNext` call altogether and just put it into an assert?