 
 extension PositionLocationManager {
    
-    internal func performOneShotLocationUpdate(withDesiredAccuracy desiredAccuracy: Double, completionHandler: @escaping OneShotCompletionHandler) {
+    internal func performOneShotLocationUpdate(withDesiredAccuracy desiredAccuracy: Double, completionHandler: Position.OneShotCompletionHandler? = nil) {
         if self.locationServicesStatus == .allowedAlways ||
             self.locationServicesStatus == .allowedWhenInUse {
             
             self.executeClosureAsyncOnRequestQueueIfNecessary {
                 let request = PositionLocationRequest()
                 request.desiredAccuracy = desiredAccuracy
-                request.lifespan = OneShotRequestTimeOut
+                request.lifespan = PositionLocationManager.OneShotRequestTimeOut
                 request.timeOutHandler = {
                     self.processLocationRequests()
                 }

            }
            
        } else {
            
            DispatchQueue.main.async {
                completionHandler(nil, PositionErrorType.restricted)
            }
            
        }
    }
    

            // check if a request completed, meaning expired or met horizontal accuracy
            //print("desiredAccuracy \(request.desiredAccuracy) horizontal \(self.location?.horizontalAccuracy)")
            if let location = self.locations?.first {
                guard request.isExpired == true || location.horizontalAccuracy < request.desiredAccuracy else {
                    return false
                }
                return true
