traversal methods should all be extension methods.