add TreeNode, not finished
add TreeNode, but not test