     func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
         self.executeClosureAsyncOnRequestQueueIfNecessary {
             // update last location
-            self.locations = locations
+            self._locations = locations
             // update one-shot requests
             self.processLocationRequests()
         }

                    request.completionHandler?(.failure(PositionErrorType.timedOut))
                }
            } else {
                if let location = self.locations?.first {
                    self.executeClosureSyncOnMainQueueIfNecessary {
                        request.completionHandler?(.success(location))
                    }

    internal var _locationManager: CLLocationManager = CLLocationManager()
    internal var _locationRequests: [PositionLocationRequest] = []
    internal var _requestQueue: DispatchQueue
    internal var _locations: [CLLocation]?

    // MARK: - object lifecycle
    
    public override init() {
