added traversal methods