some cooperation encapsulated in DataRetriever and other places