You get an empty node when you use the default constructor, or when you construct a `Node` with a `NULL` `webvtt_node` pointer, so that those objects are usable. Out of bounds access is usually not considered "okay", but it's a decision that we need to make. I would say that we shouldn't return an object for out-of-bounds access, because out-of-bounds access shouldn't happen.