retrieval refactoring