         self.mapView.setCenterCoordinate(self.mapView.userLocation.coordinate, animated: true)
         self.currentButton.enabled = false
     }
+}
 
-    // MARK: - MKMapView delegate
+// MARK: - MKMapView delegate
 
+extension LocationPickerController: MKMapViewDelegate {
+    
     func mapView(mapView: MKMapView, regionWillChangeAnimated animated: Bool) {
         guard self.isInitialized else {
             return
         }
         self.currentButton.enabled = true
     }
-
+    
     func mapView(mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
         guard self.isInitialized else {
             return
         }
         self.pointAnnotation.coordinate = mapView.region.center
     }
+}
 
-    // MARK: - CLLocationManager delegate
+
+// MARK: - CLLocationManager delegate
+
+extension LocationPickerController: CLLocationManagerDelegate {
 
     func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
         switch status {

typealias successClosure = (CLLocationCoordinate2D) -> Void
typealias failureClosure = (NSError) -> Void

class LocationPickerController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {

    var mapView: MKMapView!
    var pointAnnotation: MKPointAnnotation!

        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

// MARK: - Internal methods

internal extension LocationPickerController {

    func didTapCancelButton() {
        self.dismissViewControllerAnimated(true, completion: nil)
