     private var locationRequests: [LocationRequest] = []
     private var locationObservers: Set<LocationObserverItem> = []
     
+    public static var locationObserversCount: Int {
+        return self.sharedManager.locationObserversCount
+    }
     public var locationObserversCount: Int {
         return self.locationObservers.count
     }

     * Checks for authorization status of location services
     * returns promise for authorization status on success, LocationManagerAuthorizationError on fail
     */
    public func askForLocationServicesIfNeeded() -> Promise<CLAuthorizationStatus>{
        return Promise { fulfill, reject in
            if self.isLocationStatusDetermined() {

    }
    
    // MARK: - location requests
    
    public class func getCurrentLocation(timeout timeout: NSTimeInterval? = 8.0, desiredAccuracy: CLLocationAccuracy? = nil, force: Bool = false) -> Promise<CLLocation> {
        return self.sharedManager.getCurrentLocation(timeout: timeout, desiredAccuracy: desiredAccuracy, force: force)
    }
    
    public func getCurrentLocation(timeout timeout: NSTimeInterval? = 8.0, desiredAccuracy: CLLocationAccuracy? = nil, force: Bool = false) -> Promise<CLLocation> {
        return self.askForLocationServicesIfNeeded().then { (status) -> Promise<CLLocation> in
