move TreeNode and BinaryTree to a seperate file