             return cell
         }
         
-        var dataObject: BRCDataObject? = nil
-        let tableSection = TableSection(rawValue: indexPath.section)!
-        let row = indexPath.row
-        switch tableSection {
-        case TableSection.Events:
-            dataObject = nearbyEvents[row]
-        case TableSection.Camps:
-            dataObject = nearbyCamps[row]
-        case TableSection.Art:
-            dataObject = nearbyArt[row]
-        }
+        let dataObject = sections[indexPath.section].objects[indexPath.row]
         
-        let dataObjectClass = dataObject!.dynamicType
+        let dataObjectClass = dataObject.dynamicType
         let cellClass: (AnyClass!) = BRCDataObjectTableViewCell.cellClassForDataObjectClass(dataObjectClass)
         let reuseIdentifier = cellClass.cellIdentifier()
         let cell = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier, forIndexPath: indexPath) as! BRCDataObjectTableViewCell
         cell.dataObject = dataObject
         cell.updateDistanceLabelFromLocation(getCurrentLocation())
         cell.favoriteButtonAction = { () -> Void in
-            let dataCopy = dataObject!.copy() as! BRCDataObject
+            let dataCopy = dataObject.copy() as! BRCDataObject
             dataCopy.isFavorite = cell.favoriteButton.selected
             BRCDatabaseManager.sharedInstance().readWriteConnection!.asyncReadWriteWithBlock({ (transaction: YapDatabaseReadWriteTransaction) -> Void in
                 transaction.setObject(dataCopy, forKey: dataCopy.uniqueID, inCollection: dataCopy.dynamicType.collection())

import UIKit
import MapKit

private enum TableSection: Int {
    case Events = 0,
    Camps,
    Art
}

private enum EmptyListLabelText: String {
    case Loading = "Loading...",
    Nothing = "Nothing Nearby"
}

class BRCNearbyViewController: UITableViewController {

    var nearbyEvents: [BRCEventObject] = []
    var nearbyCamps: [BRCCampObject] = []
    var nearbyArt: [BRCArtObject] = []
    
    private var emptyListText = EmptyListLabelText.Loading
    

    }
    
    private func hasNearbyObjects() -> Bool {
        if sections.count > 0 {
            return true
        }
        return false
