> If nextPayload is null here, is that OK or an error condition?

`nextPayload` will be null when EOF is reached.  When `nextPayload` is null, `hasNext()` returns false, so it would be an error to call `next()`.  That said, it should return `NoSuchElementException` instead, so I'll fix this.