added tree traversals