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

				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)
				}
			}

extension Position: PositionLocationCenterDelegate {

    func positionLocationCenter(positionLocationCenter: PositionLocationCenter, didChangeLocationAuthorizationStatus status: LocationAuthorizationStatus) {
        let enumerator = self.observers?.objectEnumerator()
        while let observer: PositionObserver = enumerator?.nextObject() as? PositionObserver {
            observer.position(self, didChangeLocationAuthorizationStatus: status)
        }
    }
    
    func positionLocationCenter(positionLocationCenter: PositionLocationCenter, didFailWithError error: NSError?) {
        let enumerator = self.observers?.objectEnumerator()
        while let observer: PositionObserver = enumerator?.nextObject() as? PositionObserver {
            observer.position(self, didFailWithError : error)
        }
    }
    
    func positionLocationCenter(positionLocationCenter: PositionLocationCenter, didUpdateOneShotLocation location: CLLocation?) {
        let enumerator = self.observers?.objectEnumerator()
        while let observer: PositionObserver = enumerator?.nextObject() as? PositionObserver {
            observer.position(self, didUpdateOneShotLocation: location)
        }
    }
    
    func positionLocationCenter(positionLocationCenter: PositionLocationCenter, didUpdateTrackingLocations locations: [CLLocation]?) {
        let enumerator = self.observers?.objectEnumerator()
        while let observer: PositionObserver = enumerator?.nextObject() as? PositionObserver {
            observer.position(self, didUpdateTrackingLocations: locations)
        }
    }
    
    func positionLocationCenter(positionLocationCenter: PositionLocationCenter, didUpdateFloor floor: CLFloor) {
        let enumerator = self.observers?.objectEnumerator()
        while let observer: PositionObserver = enumerator?.nextObject() as? PositionObserver {
            observer.position(self, didUpdateFloor: floor)
        }
    }

    func positionLocationCenter(positionLocationCenter: PositionLocationCenter, didVisit visit: CLVisit?) {
        let enumerator = self.observers?.objectEnumerator()
        while let observer: PositionObserver = enumerator?.nextObject() as? PositionObserver {
            observer.position(self, didVisit: visit)
        }
    }
