 	
 	// MARK: Location Services
 	func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
-		if CLLocationManager.authorizationStatus() != .Restricted && CLLocationManager.authorizationStatus() != .Denied {
-			locationManager.startUpdatingLocation()
+		if havePermissions && refreshing {
+			refresh()
 		} else if refreshing {
 			timer?.invalidate()
 			timer = nil

		// super init
		super.init()
		locationManager.delegate = self

		// Get Location Permissions if Needed
		if CLLocationManager.authorizationStatus() == .NotDetermined {
			// ios7 doesn't support requestAlwaysAuthorization
			if ios7() {

	private var refreshing = false
	private var timer: NSTimer?
	
	var disabled: Bool {
		let status = CLLocationManager.authorizationStatus()
		return status == .Restricted || status == .Denied
	}
	
	var havePermissions: Bool {
		let status = CLLocationManager.authorizationStatus()
		
		if ios7() {
			return status == .Authorized
		}
		
		return status == .Authorized || status == .AuthorizedWhenInUse
	}
	
	override init() {
		// setup CLLocationManager to get location
		locationManager = CLLocationManager()
