         var closestDistance: CLLocationDistance = Double.infinity
         var closestZoneInfo: [AnyHashable: Any]?
         
-        if let source = source {
-            for locationInfo in source {
-                
-                if let latitude = locationInfo["latitude"] as? Double,
-                    let longitude = locationInfo["longitude"] as? Double {
-                        
-                        let distance = location.distance( from: CLLocation(latitude: latitude, longitude: longitude) )
-                        if  distance < closestDistance {
-                            closestDistance = distance
-                            closestZoneInfo = locationInfo
-                        }
-                }
+        guard let source = source else { return nil }
+            
+        for locationInfo in source {
+            guard let latitude = locationInfo["latitude"] as? Double,
+                  let longitude = locationInfo["longitude"] as? Double else { continue }
+            
+            let distance = location.distance( from: CLLocation(latitude: latitude, longitude: longitude) )
+            if  distance < closestDistance {
+                closestDistance = distance
+                closestZoneInfo = locationInfo
             }
         }
         

    open class func timeZoneWithLocation(_ location:CLLocation, countryCode:String?) -> TimeZone? {
        
        //Need a countr
        if let countryCode = countryCode,
            //Filter
            let filteredZones = filteredTimeZonesWithCountyCode(countryCode),
            //Get closest zone info
            let closestZoneInfo = closestZoneInfoWithLocation(location, source:filteredZones),
            //get timzone
            let timeZone = timeZoneWithDictionary(closestZoneInfo)
        {
            return timeZone
        } else {
            return timeZoneWithLocation(location)
        }
        
    }
    
    /*

    Get timezone with lat/lon and country code
    */
    open class func timeZoneWithLocation(_ location:CLLocation) -> TimeZone {
        guard let closestZoneInfo = closestZoneInfo(with:location, source: TimeZoneLocate.timeZonesDB),
              let timeZone = timeZoneWithDictionary(closestZoneInfo)
            else { return TimeZone.current } //We've found nothing. Let's use system.
        return timeZone
    }
    
    /*
