 extension LocationPickerViewController: CLLocationManagerDelegate {
 	public func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
 		if let locations = locations as? [CLLocation], location = locations.first {
-			for listener in reverse(currentLocationListeners) {
+			for listener in currentLocationListeners {
 				listener.action(location)
 			}
 			currentLocationListeners = currentLocationListeners.filter { !$0.once }
-		}
-		manager.stopUpdatingLocation()
+			manager.stopUpdatingLocation()
+		}
 	}
 }
 


extension LocationPickerViewController: MKMapViewDelegate {
	public func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
		let pin = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "annotation")
		pin.pinColor = .Green
		pin.animatesDrop = true
		pin.canShowCallout = true
		return pin
	}
	
	public func mapView(mapView: MKMapView!, didAddAnnotationViews views: [AnyObject]!) {
		if let annotations = mapView.annotations {
			assert(annotations.count == 1, "Only one annotation should be on map at a time")
		}
	}
}

			button.layer.cornerRadius = 16
			let bundle = NSBundle(forClass: LocationPickerViewController.self)
			button.setImage(UIImage(named: "geolocation", inBundle: bundle, compatibleWithTraitCollection: nil), forState: .Normal)
			button.addTarget(self, action: "currentLocationPressed", forControlEvents: .TouchUpInside)
			view.addSubview(button)
			locationButton = button
		}
