I can change it once it is in place, but if you don't see any advantage to have `TreeNode` subclassed we can left it as it is.