             
             var status: LocationAuthorizationStatus = .NotDetermined
             switch CLLocationManager.authorizationStatus() {
-            case .AuthorizedAlways:
-                status = .AllowedAlways
-                break
-            case .AuthorizedWhenInUse:
-                status = .AllowedWhenInUse
-                break
-            case .Denied, .Restricted:
-                status = .Denied
-                break
-            case .NotDetermined:
-                status = .NotDetermined
-                break
+                case .AuthorizedAlways:
+                    status = .AllowedAlways
+                    break
+                case .AuthorizedWhenInUse:
+                    status = .AllowedWhenInUse
+                    break
+                case .Denied, .Restricted:
+                    status = .Denied
+                    break
+                case .NotDetermined:
+                    status = .NotDetermined
+                    break
             }
             return status
         }

    func startUpdating() {
        let status: LocationAuthorizationStatus = self.locationServicesStatus
        switch status {
        case .AllowedAlways, .AllowedWhenInUse:
            self.locationManager.startUpdatingLocation()
            self.locationManager.startMonitoringVisits()
            self.updatingLocation = true
            self.updateLocationManagerStateIfNeeded()
        default:
            break
        }
    }

    func stopUpdating() {
        let status: LocationAuthorizationStatus = self.locationServicesStatus
        switch status {
        case .AllowedAlways, .AllowedWhenInUse:
            self.locationManager.stopUpdatingLocation()
            self.locationManager.stopMonitoringVisits()
            self.updatingLocation = false
            self.updateLocationManagerStateIfNeeded()
        default:
            break
        }
    }
    
    func startLowPowerUpdating() {
        let status: LocationAuthorizationStatus = self.locationServicesStatus
        switch status {
        case .AllowedAlways, .AllowedWhenInUse:
            self.locationManager.startMonitoringSignificantLocationChanges()
            self.updatingLowPowerLocation = true
            self.updateLocationManagerStateIfNeeded()
        default:
            break
        }
    }

    func stopLowPowerUpdating() {
        let status: LocationAuthorizationStatus = self.locationServicesStatus
        switch status {
        case .AllowedAlways, .AllowedWhenInUse:
            self.locationManager.stopMonitoringSignificantLocationChanges()
            self.updatingLowPowerLocation = false
            self.updateLocationManagerStateIfNeeded()
        default:
            break
        }
    }
    

		}
		
		let completeRequests: [PositionLocationRequest] = locationRequests.filter { (request) -> Bool in
            // check for expired requests
			if request.expired == true {
				return true
			}
			
			// check if desiredAccuracy was met for the request
			if let location = self.location {
				if location.horizontalAccuracy < request.desiredAccuracy {
					return true
				}
			}
			
            return false
		}
		
		for request in completeRequests {
