 		self.activityQueue = NSOperationQueue()
 		self.motionActivityStatus = CMMotionActivityManager.isActivityAvailable() ? .NotDetermined : .NotAvailable
 		self.lastActivity = .Unknown
-		
-		self.observers = NSHashTable.weakObjectsHashTable()
-		
+				
         super.init()
 		
         locationCenter.delegate = self

    // MARK: - observers

    public func addObserver(observer: PositionObserver?) {
		if observers.containsObject(observer) == false {
			observers.addObject(observer)
		}
    }
	
    public func removeObserver(observer: PositionObserver?) {
		if observers.containsObject(observer) == true {
			observers.removeObject(observer)
		}
        if observers.count == 0 {
            self.observers = NSHashTable.weakObjectsHashTable()
        }
    }


				self.activityManager.stopActivityUpdates()
				self.motionActivityStatus = .Allowed
				
				let enumerator = self.observers?.objectEnumerator()
				while let observer: PositionObserver = enumerator?.nextObject() as? PositionObserver {
					observer.position(self, didChangeMotionAuthorizationStatus: self.motionActivityStatus)
				}
			}
