 
     fileprivate var authorizationCompletion: ((AuthorizedLocationManagerResult) -> Void)!
     fileprivate var authorizationScope: AuthorizationScope!
+    
+    fileprivate var locationManager: CLLocationManager?
 
     public class func authorizedLocationManager(scope: AuthorizationScope, completion: @escaping (AuthorizedLocationManagerResult) -> Void) {
-        if !CLLocationManager.locationServicesEnabled() {
+        guard CLLocationManager.locationServicesEnabled() else {
             let error = NSError(domain: AuthorizationErrorDomain, code: AuthorizationErrorCode.disabled.rawValue, userInfo: [NSLocalizedDescriptionKey: AuthorizationErrorDescription, NSLocalizedFailureReasonErrorKey: "The user has disabled location services for their device."])
             completion(.failure(error))
             return

        self.authorizationCompletion = { authorizationResult in
            switch authorizationResult {
            case .success(let authorizedLocationManager):
                authorizedLocationManager.delegate = nil
                completion(.success(authorizedLocationManager))
            case .failure(let error):

        }

        // just by instantiating, we'll get a callback to `locationManager(_:didChangeAuthorization:)`
        locationManager = CLLocationManager()
        locationManager?.delegate = self
    }

}
