     // MARK: - observers
 
     public func addObserver(observer: PositionObserver?) {
-        if self.observers == nil {
-            self.observers = NSHashTable.weakObjectsHashTable()
-        }
-        
-        if let observers = self.observers {
-            if observers.containsObject(observer) == false {
-                observers.addObject(observer)
-            }
-        }
-    }
-    
+		if observers.containsObject(observer) == false {
+			observers.addObject(observer)
+		}
+    }
+	
     public func removeObserver(observer: PositionObserver?) {
-        if let observers = self.observers {
-            if observers.containsObject(observer) {
-                observers.removeObject(observer)
-            }
-        }
+		if observers.containsObject(observer) {
+			observers.removeObject(observer)
+		}
     }
 
     // MARK: - settings
 
     public var adjustLocationUseWhenBackgrounded: Bool {
         didSet {
-            if (self.locationCenter.updatingLowPowerLocation == true) {
+            if self.locationCenter.updatingLowPowerLocation == true {
                 self.locationCenter.stopLowPowerUpdating()
                 self.locationCenter.startUpdating()
             }

    
    func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
        self.completeLocationRequestsWithError(error)
        self.delegate.positionLocationCenter(self, didFailWithError: error)
    }
    
    func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {

    func cancelRequest() {
        self.expired = true
        self.expirationTimer?.invalidate()
        self.expirationTimer = nil
    }

    // MARK - NSTimer
