         let oneMonth = self.oneUnitBefore(NSDate(), withUnit: NSCalendarUnit.Month)
         
         PatronManager.sharedManager.fetchPatronageExpiration { (date : NSDate?) -> Void in
-            self.tableView.reloadData()
+            dispatch_async(dispatch_get_main_queue(), { () -> Void in
+                self.tableView.reloadSections(NSIndexSet(index: 0), withRowAnimation: .Automatic)
+            })
         }
         
         PatronManager.sharedManager.fetchPatronCountSince(date: oneMonth) { (count, error) -> Void in
-            self.tableView.reloadData()
+            dispatch_async(dispatch_get_main_queue(), { () -> Void in
+                self.tableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: .Automatic)
+            })
         }
         
         PatronManager.sharedManager.fetchAvailablePatronageProducts { (products, error) -> Void in
-            self.tableView.reloadData()
+            dispatch_async(dispatch_get_main_queue(), { () -> Void in
+                self.tableView.reloadSections(NSIndexSet(index: 1), withRowAnimation: .Automatic)
+            })
         }
     }
     

    // MARK: - Common initialization
    
    func commonInit() {
        self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "com.mosheberman.patronage.cell.default")
        
        numberFormatter.numberStyle = .CurrencyStyle
        dateFormatter.timeStyle = .NoStyle

                
                PatronManager.sharedManager.purchaseProduct(product: product, withCompletionHandler: { (success, error) -> Void in
                    print("Purchase complete. Success: \(success) Error: \(error)")
                    self.tableView.reloadData()
                    
                    PatronManager.sharedManager.fetchPatronageExpiration(withCompletionHandler: { (expiration : NSDate?) -> Void in
                        PatronManager.sharedManager.fetchPatronCountSince(date: self.oneUnitBefore(NSDate(), withUnit: .Month), withCompletionHandler: { (count, error) -> Void in
                            self.tableView.reloadData()
                        })
                    })
                })
                
            }
