is `_validate` valid for either `[0]` or `[-1]`, and if so, is that valid for the methods that depend on `_validate`? If some methods do accept these conditions, and some don't, then it makes sense to leave `_validate` as is, but if all of the methods assume otherwise then it would be great if `_validate` checked these