split BatchRetriever out of TransferManagerImpl and add some diagnostic logging.