actually I think you can just remove the `hasNext` call altogether. The method contract says you can't call this if `hasNext()` returns `false` so maybe just put in in an assert or remove altogether!