     {
         guard
             
-            let currentLocation:CLLocation = locations.last
+            let location:CLLocation = locations.last
             
         else
         {
             return
         }
         
-        let horizontalAccuracy:CLLocationAccuracy = currentLocation.horizontalAccuracy
+        let horizontalAccuracy:CLLocationAccuracy = location.horizontalAccuracy
         
         if horizontalAccuracy <= kDistanceAccuracy
         {
             locationManager.stopUpdatingLocation()
             locationManager.delegate = nil
             
-            let latitude:Double = currentLocation.coordinate.latitude
-            let longitude:Double = currentLocation.coordinate.longitude
-            
             DispatchQueue.global(qos:DispatchQoS.QoSClass.background).async
             { [weak self] in
                 
-                self?.syncLocation(
-                    latitude:latitude,
-                    longitude:longitude)
+                self?.reverseGeocode(location:location)
             }
         }
     }

    
    deinit
    {
        locationManager.stopUpdatingLocation()
    }
    
    private func syncLocation(
        latitude:Double,
        longitude:Double)
    {
        controller?.model.session.syncLocation(
            latitude:latitude,
            longitude:longitude)

        _ manager:CLLocationManager,
        didFailWithError error:Error)
    {
        showError(message:error.localizedDescription)
    }
    
    func locationManager(
