overload functions
binary tree traversal