 			switch result {
 			case .success(let (entries, nextPage)):
 				
-				self?.processEntries(account: account, entries: entries, completion: nil)
-				self?.refreshArticles(account, page: nextPage)
+				self?.processEntries(account: account, entries: entries) {
+					self?.refreshArticles(account, page: nextPage, completion: completion)
+				}
 				
 			case .failure(let error):
 				guard let self = self else { return }

		}
	}

	func refreshArticles(_ account: Account, completion: @escaping (Result<Void, Error>) -> Void) {

		os_log(.debug, log: log, "Refreshing articles...")
		
		for feed in account.flattenedFeeds() {
		
			caller.retrieveEntries(feed.feedID) { [weak self] result in
				
				switch result {
				case .success(let (entries, page)):
					
					self?.processEntries(account: account, entries: entries, completion: completion)
					self?.refreshArticles(account, page: page)

				case .failure(let error):
					guard let self = self else { return }

			
		}
		
		group.notify(queue: DispatchQueue.main) {
			completion()
		}
		
		
	}
	
	func refreshArticles(_ account: Account, page: String?, completion: @escaping (() -> Void)) {
		
		guard let page = page else {
			completion()
			return
		}
		
