added Tree and BinaryTree interface