         // Obj-C interop is hard!
         return MKCircleRenderer()
     }
+
+    func mapView(mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
+        if (!view.annotation!.isKindOfClass(MKCircle.self)) { return }
+            if let circle = view.annotation as? MKCircle {
+                if let index = self.previousGeofences.indexOf({ $0.circle == circle }) {
+                    let geofence = self.previousGeofences[index]
+                    self.previousGeofences.removeAtIndex(index)
+
+                    self.circle = nil
+                    replaceFirstWithCoordinate(geofence.points[0])
+                    replaceSecondWithCoordinate(geofence.points[1])
+                    self.title = geofence.title
+                }
+            }
+        }
 }
 

    }

    // -
    func recalculateCircle() {
        if let first = first, second = second {
            if let circle = circle {

            if annotation.isKindOfClass(MKCircle.self) {
                pinView?.pinTintColor = MKPinAnnotationView.greenPinColor()
                pinView?.canShowCallout = true
                pinView?.rightCalloutAccessoryView = UIButton(type: .DetailDisclosure)
            } else {
                pinView?.pinTintColor = MKPinAnnotationView.redPinColor()
                pinView?.canShowCallout = false
                pinView?.rightCalloutAccessoryView = nil
            }
            
            return pinView
