exported recursive traversal methods