         return nil
     }
     
-    public func mapView(mapView: MKMapView, didAddAnnotationViews views: [MKAnnotationView]) {
+    public func mapView(_ mapView: MKMapView, didAdd views: [MKAnnotationView]) {
         
         if self.animateAnnotations {
             for view in views {

            let fetchRequest = ABFLocationFetchRequest(entityName: self.entityName!, inRealm: rlmRealm, latitudeKeyPath: self.latitudeKeyPath!, longitudeKeyPath: self.longitudeKeyPath!, forRegion: currentRegion)
            
            if let basePred = self.basePredicate, let pred = fetchRequest.predicate {
                let compPred = NSCompoundPredicate(andPredicateWithSubpredicates: [pred, basePred])
                fetchRequest.predicate = compPred
            }
            
            self.fetchedResultsController.updateLocationFetchRequest(fetchRequest, titleKeyPath: self.titleKeyPath, subtitleKeyPath: self.subtitleKeyPath)
            
            var refreshOperation: NSBlockOperation?
            
            let visibleMapRect = self.visibleMapRect
            

    
    weak private var externalDelegate: MKMapViewDelegate?
    
    private func addAnnotationsToMapView(_ annotations: Set<ABFAnnotation>) {
        let currentAnnotations = NSMutableSet(array: self.annotations)
        
        let newAnnotations = annotations
