     case IncidentTypes
     case Personnel
     case Locations
+    case Incidents
 
     var description: String {
         switch self {
             case .IncidentTypes: return "incident types"
             case .Personnel    : return "personnel"
             case .Locations    : return "locations"
-        }
-    }
-}
-
-
-
-enum IMSConnectionID {
+            case .Incidents    : return "incidents"
+        }
+    }
+}
+
+
+
+enum IMSConnectionID: Hashable {
     case IncidentTypes
     case Personnel
     case Locations
+    case Incidents(Int)
+
+    var hashValue: Int {
+        var hash: Int
+
+        switch self {
+            case .IncidentTypes: hash = -1
+            case .Personnel    : hash = -2
+            case .Locations    : hash = -3
+
+            case .Incidents(let id): hash = id
+        }
+
+        return hash
+    }
+}
+
+func ==(lhs: IMSConnectionID, rhs: IMSConnectionID) -> Bool {
+    switch lhs {
+        case .IncidentTypes: if case .IncidentTypes = rhs { return true } else { return false }
+        case .Personnel    : if case .Personnel     = rhs { return true } else { return false }
+        case .Locations    : if case .Locations     = rhs { return true } else { return false }
+
+        case .Incidents(let l_id):
+            if case .Incidents(let r_id) = rhs { return l_id == r_id } else { return false }
+    }
 }
 
 

                loadIncidentTypes()
                loadPersonnel()
                loadLocations()
        }
    }


                return
            }

            guard let incidentTypes = json as? [String] else {
                logError("Incident Types JSON is non-conforming: \(json)")
                return
            }
