 		
 	}
 	
-    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
-		DispatchQueue.main.async {
-			self.resumeDatabaseProcessingIfNecessary()
-			AccountManager.shared.receiveRemoteNotification(userInfo: userInfo) {
-				self.suspendApplication()
-				completionHandler(.newData)
-			}
-		}
+    func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completion: @escaping (UIBackgroundFetchResult) -> Void) {
+		let op = RemoteNotificationOperation(userInfo: userInfo, completion: completion)
+		remoteNotificationoperationQueue.add(op)
     }
 	
 	func applicationWillTerminate(_ application: UIApplication) {

	}
	
}

	private var syncBackgroundUpdateTask = UIBackgroundTaskIdentifier.invalid
	
	var syncTimer: ArticleStatusSyncTimer?
	private let remoteNotificationoperationQueue = MainThreadOperationQueue()
	
	var shuttingDown = false {
		didSet {
