 
 enum PorkHandlerErrors: ErrorType {
     case TooManyRegions(message: String)
-    case MissingKeysInPlisFile(keys:[String])
 }
 
 protocol PorkEventHandler: class { // 💩

        }
    }

    func start() {
        if isRunning == false {
            isRunning = true

            registerRegions()
        }

        }
    }

    func requestForLocationManagerAuthorization() {

        switch self.plistValidator.validationResult {

            case .AllwaysAndWhenInUse?, .Allways? :
                self.locationManager .requestAlwaysAuthorization()

            case .WhenInUse?:
                self.locationManager.requestWhenInUseAuthorization()

            default:
                break;
        }
    }
}

extension PorkHandler: CLLocationManagerDelegate {

    func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {

        switch status {

            case .AuthorizedAlways, .AuthorizedWhenInUse :
                try! start()
                self.locationManager .startUpdatingLocation()

            case .NotDetermined:
                requestForLocationManagerAuthorization()

            default:
                break
        }
    }

