add a generic retriever