         }
         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 {


        let count = min(results.count, maximumRowCount)
        guard count > 0 else {
            return
        }
        
        var language: String? = nil
        let siteURL = dataStore.languageLinkController.appLanguage?.siteURL()
        if let languageCode = siteURL?.wmf_language {
            language = (Locale.current as NSLocale).wmf_localizedLanguageNameForCode(languageCode)
        }

        }
        self.groupURL = topRead.url
        self.results = content
        self.siteURL = dataStore.languageLinkController.appLanguage?.siteURL()
        self.updateViewAsync(with: dataStore) { didUpdate in
            completionHandler(didUpdate ? .newData : .noData)
        }
    }

