added optional retrieval