Out of the other two parameters kind is a non-pointer so I don't really think we need to check that and parent is optional, it's entirely valid to create a node with a null parent.