refactoring to expose recover's traverse method