     
     lazy var coodinator: FetchedResultsCoordinator<Arrival> = FetchedResultsCoordinator(coordinatee: self.tableView, fetchedResultsController: self.fetchedResultsController)
     
-    lazy var dataSource:SimpleTableDataSource<Arrival,SubtitleCell> = SimpleTableDataSource(cellConfigurator: self, fetchedResultsController: self.fetchedResultsController)
+    lazy var dataSource:FetchedTableDataSource<Arrival,SubtitleCell> = FetchedTableDataSource(cellConfigurator: self, fetchedResultsController: self.fetchedResultsController)
     
 
     override func viewDidLoad() {

            cell.textLabel?.text = String(format: "Arriving in %02d:%02d", minutes, seconds )
        }
        
        if let secondsToArrival = managedObject.timeToStation as? Int {
            if secondsToArrival == 0 {
                
            }
        }
        
        cell.detailTextLabel?.text = managedObject.platformName ?? "Unknown Platform"
        
        cell.backgroundColor = colourForLine( managedObject.lineName )
    }
    
}

    enum Constants {
        static let CellIdentifier = "CellReuseIdentifier"
    }
    func cellReuseIdentifierForObject( object: Arrival, atIndexPath indexPath: NSIndexPath ) -> String {
        return Constants.CellIdentifier
    }
    
    func configureCell( cell: SubtitleCell, withObject object: Arrival, atIndexPath indexPath: NSIndexPath ) {
    
        switch object.timeToStation as? Int {
        case nil:
            cell.textLabel?.text = "Missing Data"
        case let secondsToArrival? where secondsToArrival == 0:
