 
 class PatronageViewController: UITableViewController {
     
-    var formatter : NSNumberFormatter = NSNumberFormatter()
+    var numberFormatter : NSNumberFormatter = NSNumberFormatter()
+    var dateFormatter : NSDateFormatter = NSDateFormatter()
+    var calendar : NSCalendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
     
     override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
         super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)

                let title : String = product.localizedDescription
                var price : String? = NSLocalizedString("---", comment: "A label for when the price isn't available.")
                
                if let productPrice = self.formatter.stringFromNumber(product.price) {
                    price = productPrice
                }
                

    func commonInit() {
        self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "com.mosheberman.patronage.cell.default")
        
        numberFormatter.numberStyle = .CurrencyStyle
        dateFormatter.timeStyle = .NoStyle
        dateFormatter.dateStyle = .MediumStyle
        
        let oneMonth = self.oneUnitBefore(NSDate(), withUnit: NSCalendarUnit.Month)
        
        PatronManager.sharedManager.fetchPatronageExpiration { (date : NSDate?) -> Void in
            self.tableView.reloadData()
        }
        
        PatronManager.sharedManager.fetchPatronCountSince(date: oneMonth) { (count, error) -> Void in
            self.tableView.reloadData()
        }
        
        PatronManager.sharedManager.fetchAvailablePatronageProducts { (products, error) -> Void in
            self.tableView.reloadData()
        }
    }
    
    // MARK: - UITableViewDataSource
