     }
     
     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
-        let cell: POSReceiptTableViewCell = POSReceiptTableViewCell.init()
         
-        // dostuff
+        var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("ReceiptTableViewCellIdentifier")
+        
+        if(cell == nil){
+            cell = UncategorisedReceiptsTableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "ReceiptTableViewCellIdentifier")
+        }
+        
+        self.configureCell(cell  as! UncategorisedReceiptsTableViewCell, indexPath: indexPath)
+        
+        return cell!
+    }
+    
+    func configureCell(receiptTableViewCell: UncategorisedReceiptsTableViewCell, indexPath: NSIndexPath) {
         let receipt: POSReceipt = self.receipts[indexPath.row]
-        cell.amountLabel.text = receipt.amount.stringValue
-        cell.storeNameLabel.text = receipt.storeName
-        cell.dateLabel.text = POSDocument.stringForDocumentDate(receipt.timeOfPurchase)
         
-        return cell
+//        print(receiptTableViewCell)
+//        print(receiptTableViewCell.storeNameLabel)
+//        print(receiptTableViewCell.storeNameLabel.text)
+//        receiptTableViewCell.storeNameLabel.text = receipt.storeName;
+//        receiptTableViewCell.amountLabel.text = POSReceipt.stringForReceiptAmount(receipt.amount)
+//        receiptTableViewCell.amountLabel.accessibilityLabel = self.numberFormatter.stringFromNumber(receipt.amount.doubleValue / 100);
+//        receiptTableViewCell.amountLabel.accessibilityHint = self.numberFormatter.stringFromNumber(receipt.amount.doubleValue / 100);
+//        receiptTableViewCell.dateLabel.text = POSDocument.stringForDocumentDate(receipt.timeOfPurchase)
+//        receiptTableViewCell.multipleSelectionBackgroundView = UIView()
     }
     
     func receiptAtIndexPath(indexPath: NSIndexPath) -> POSReceipt {

    let tableView: UITableView
    var receipts: [POSReceipt] = []
    
    lazy var fetchedResultsController: NSFetchedResultsController = {
        let fetchRequest = NSFetchRequest(entityName: "Receipt")
        let managedObjectContext: NSManagedObjectContext = POSModelManager.sharedManager().managedObjectContext
        // Order the events by creation date, most recent first.
        let timeOfPurchaseDescriptor = NSSortDescriptor(key: "timeOfPurchase", ascending: false)
        fetchRequest.sortDescriptors = [timeOfPurchaseDescriptor]
        
        var controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext:managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
        do {
            try controller.performFetch()
        } catch let error {
            print(error)
        }
        
        return controller
    }()
    
    var numberOfReceipts: Int = 0

        super.init()
        
        tableView.dataSource = self
        
        self.tableView.registerClass(UncategorisedReceiptsTableViewCell.self, forCellReuseIdentifier: "ReceiptTableViewCellIdentifier")
    }
    
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
