         }
     }
 
-    private func reloadHighlights() {
-        fetchHighlights().uponQueue(dispatch_get_main_queue()) { result in
+    private func reloadHighlights() -> Success {
+        return fetchHighlights().bindQueue(dispatch_get_main_queue()) { result in
             self.highlights = result.successValue?.asArray() ?? self.highlights
-            self.tableView.reloadSections(NSIndexSet(index: Section.Highlights.rawValue), withRowAnimation: .Automatic)
+            return succeed()
         }
     }
 

                ASOnyxPing.reportTapEvent(event)
                self.showSiteWithURLHandler(url)
            }
            self.tableView.reloadSections(NSIndexSet(index: Section.TopSites.rawValue), withRowAnimation: .Automatic)
        }
    }


        tableView.sectionFooterHeight = 0
        tableView.sectionHeaderHeight = UITableViewAutomaticDimension

        all([reloadTopSites(), reloadHighlights()]).uponQueue(dispatch_get_main_queue()) { _ in
            self.tableView.reloadData()
        }
    }

    override func viewWillAppear(animated: Bool) {
