move TreeNode to chapter 2