     
     private func checkAuthorizationStatusForServices() {
         if self.locationCenter.locationServicesStatus == .Denied {
-            let enumerator = self.observers?.objectEnumerator()
-            while let observer: PositionObserver = enumerator!.nextObject() as? PositionObserver {
+            let enumerator = self.observers.objectEnumerator()
+            while let observer: PositionObserver = enumerator.nextObject() as? PositionObserver {
                 observer.position(self, didChangeLocationAuthorizationStatus: .Denied)
             }
         }


    public var location: CLLocation? {
        get {
            return locationCenter?.location
        }
    }
    
    public func performOneShotLocationUpdateWithDesiredAccuracy(desiredAccuracy: Double, completionHandler: OneShotCompletionHandler) {
        self.locationCenter?.performOneShotLocationUpdateWithDesiredAccuracy(desiredAccuracy, completionHandler: completionHandler)
    }

    // MARK: - location tracking

    // MARK: - observers

    public func addObserver(observer: PositionObserver?) {
		if observers.containsObject(observer) == false {
			observers.addObject(observer)
		}
    }
	
    public func removeObserver(observer: PositionObserver?) {
		if observers.containsObject(observer) {
			observers.removeObject(observer)
		}
    }

    // MARK: - settings

    public var adjustLocationUseWhenBackgrounded: Bool {
        didSet {
            if self.locationCenter.updatingLowPowerLocation == true {
                self.locationCenter.stopLowPowerUpdating()
                self.locationCenter.startUpdating()
            }
