Yes, we need it for the iterators. That's how the readers know they've reached the end of the file.  We can, however, have a different constructor or a static factory method. Actually I think I like the static factory method idea better, let's discuss on the whiteboard.