         logger.logError("Location permission has NOT been granted")
         
         delegate?.didFailLocationUpdate(nil)
+    }
+    
+    private func sendCachedLocationIfPresent() -> Bool {
+        if let currentLocation = currentLocation {
+            logger.logDebug("Sending last fetched location")
+
+            delegate?.didUpdateLocation(currentLocation, isCachedLocation: true)
+            
+            return true
+        }
+        return false
     }
 }
 

        logger.logError("Getting updated location failed with error \(error.localizedDescription)")
        
        currentLocationSerialQueue.sync { [weak self] in
            if let currentLocation = self?.currentLocation {
                logger.logDebug("Sending last fetched location")
                
                delegate?.didUpdateLocation(currentLocation, isCachedLocation: true)
            } else {
                delegate?.didFailLocationUpdate(error)
            }
        }
    }

    }
    
    private func requestUpdatedLocation() {
        _ = sendCachedLocationIfPresent()
        locationManager.startUpdatingLocation()
    }
    
