         modelCreate = MCreate()
         modelLocation?.model = modelCreate
         modelLocation?.askAuthorization()
+    }
+    
+    //MARK: private
+    
+    private func changeAuthorization<T:MCreateLocationStrategyProtocol>(
+        authStatus:CLAuthorizationStatus) -> T?
+    {
+        guard
+            
+            let locationManager:CLLocationManager = modelLocation?.locationManager
+            
+        else
+        {
+            return nil
+        }
+        
+        modelLocation?.locationManager(
+            locationManager,
+            didChangeAuthorization:CLAuthorizationStatus.authorizedAlways)
+        
+        let strategy:T? = modelCreate?.locationStrategy as? T
+        
+        return strategy
     }
     
     //MARK: tests

    
    func testChangeAuthorizationDenied()
    {
        guard
            
            let locationManager:CLLocationManager = modelLocation?.locationManager
            
        else
        {
            return
        }
        
        modelLocation?.locationManager(
            locationManager,
            didChangeAuthorization:CLAuthorizationStatus.denied)
        
        let strategy:MCreateLocationStrategyDenied? = modelCreate?.locationStrategy as? MCreateLocationStrategyDenied
        
        XCTAssertNil(
            strategy,
            "location strategy should be denied")
    }
}

    
    func testChangeAuthorizationNotDetermined()
    {
        let _:MCreateLocationStrategyUnknown? = changeAuthorization(
            authStatus:CLAuthorizationStatus.notDetermined)
        
        XCTAssertNil(
            modelCreate?.locationStrategy,
