When is NodeById needed? When would you want an exception to be thrown? Wouldn't all use cases be better off with NodeByIdOrEmpty?