     }
 
     func locationManager(_ manager: CLLocationManager, didEnterRegion region: CLRegion) {
-        // TODO low power geofence tracking
     }
     
     func locationManager(_ manager: CLLocationManager, didExitRegion region: CLRegion) {
-        // TODO low power geofence tracking
     }
     
     func locationManager(_ manager: CLLocationManager, didStartMonitoringFor region: CLRegion) {

// MARK: - location

extension Position {
    
    /// Last determined location
    public var location: CLLocation? {
        get {
            return self._positionLocationManager.locations?.first
        }
    }
    
    /// `true` when location services are updating
    public var updatingLocation: Bool {
        get {
            return self._positionLocationManager.updatingLocation == true || self._positionLocationManager.updatingLowPowerLocation == true
        }
    }
    
    /// Triggers a single location request at a specific desired accuracy regardless of any other location tracking configuration or requests.
    ///
    /// - Parameters:

    internal func updateLocationManagerStateIfNeeded() {
        // when not processing requests, set desired accuracy appropriately
        if self._locationRequests.count > 0 {
            if self.isUpdatingLocation == true {
                self._locationManager.desiredAccuracy = self.trackingDesiredAccuracyActive
            } else if self.isUpdatingLowPowerLocation == true {
                self._locationManager.desiredAccuracy = self.trackingDesiredAccuracyBackground
            }
            
