         }
         chevronImageView.tintColor = theme.colors.secondaryText
     }
-    
-    
-    
-    func update(with dataStore: MWKDataStore, completion: @escaping () -> Void) {
+
+    @objc func updateView() {
+        let completion = { (result: Bool) in
+            DDLogDebug("Widget did finish")
+        }
+        WidgetController.shared.startWidgetUpdateTask(completion) { (dataStore, completion) in
+            self.updateViewAsync(with: dataStore, completion: completion)
+        }
+    }
+    
+    func updateViewAsync(with dataStore: MWKDataStore, completion: @escaping (Bool) -> Void) {
         guard viewIfLoaded != nil else {
+            completion(false)
             return
         }
         if let context = self.extensionContext {

        
        preferredContentSize = rowCount == 1 ? articlePreviewViewControllers[0].view.frame.size : size
        activityIndicatorHidden = true
    }
    
    var activityIndicatorHidden: Bool = false {

            }
            
            if let imageURL = result.thumbnailURL {
                group.enter()
                vc.imageView.wmf_setImage(with: imageURL, detectFaces: true, onGPU: true, failure: { (error) in
                    group.leave()
                    vc.collapseImageAndWidenLabels = true
                }) {
                    group.leave()
                    vc.collapseImageAndWidenLabels = false
                }
            } else {
                vc.collapseImageAndWidenLabels = true
