 			} else {
 				locationManager.requestAlwaysAuthorization()
 			}
-		}
-	}
-	
-	func refresh() {
-		delegate?.dataRefreshing()
-		refreshing = true
-		
-		// start updating location if authorized
-		if CLLocationManager.authorizationStatus() != .Restricted && CLLocationManager.authorizationStatus() != .Denied {
-			locationManager.startUpdatingLocation()
-			
-			// start timer
-			timer = NSTimer.scheduledTimerWithTimeInterval(3.0, target: self, selector: "timedOut", userInfo: nil, repeats: false)
-		} else {
-			delegate?.dataError()
-			refreshing = false
 		}
 	}
 	

	private var refreshing = false
	private var timer: NSTimer?
	
	override init() {
		// setup CLLocationManager to get location
		locationManager = CLLocationManager()

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