 
     @objc private func SELrefresh() {
         self.refreshControl?.beginRefreshing()
-        profile.remoteClientsAndTabs.getClientsAndTabs { clients in
-            self.refreshControl?.endRefreshing()
-            self.clients = clients
-            // Maybe show a background view.
-            let tableView = self.tableView
-            if self.clients == nil || self.clients!.isEmpty {
-                tableView.backgroundView = UIView()
-                tableView.backgroundView?.frame = tableView.frame
-                // TODO: Populate background view with UX-approved content.
-                tableView.backgroundView?.backgroundColor = UIColor.redColor()
-                // Hide dividing lines.
-                tableView.separatorStyle = UITableViewCellSeparatorStyle.None
-            } else {
-                tableView.backgroundView = nil
-                // Show dividing lines.
-                tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
+        profile.remoteClientsAndTabs.getClientsAndTabs().upon({ tabs in
+            if let tabs = tabs.successValue {
+                self.refreshControl?.endRefreshing()
+                self.clientTabs = tabs
+
+                // Maybe show a background view.
+                let tableView = self.tableView
+                if tabs.isEmpty {
+                    tableView.backgroundView = UIView()
+                    tableView.backgroundView?.frame = tableView.frame
+                    // TODO: Populate background view with UX-approved content.
+                    tableView.backgroundView?.backgroundColor = UIColor.redColor()
+                    // Hide dividing lines.
+                    tableView.separatorStyle = UITableViewCellSeparatorStyle.None
+                } else {
+                    tableView.backgroundView = nil
+                    // Show dividing lines.
+                    tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
+                }
+                tableView.reloadData()
             }
-            tableView.reloadData()
-        }
+        })
     }
 
     override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
-        return clients?.count ?? 0
+        return clientTabs?.count ?? 0
     }
 
     override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-        return clients?[section].tabs.count ?? 0
+        return clientTabs?[section].tabs.count ?? 0
     }
 
     override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

                view.imageView.image = UIImage(named: "deviceTypeMobile")
            }
            return view
        } else {
            return nil
        }
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    weak var homePanelDelegate: HomePanelDelegate? = nil
    var profile: Profile!

    private var clientTabs: [ClientAndTabs]?

    private func tabAtIndexPath(indexPath: NSIndexPath) -> RemoteTab? {
        return clientTabs?[indexPath.section].tabs[indexPath.item]
    }

    override func viewDidLoad() {
