             DispatchQueue.main.async
             { [weak self] in
                 
-                self?.shareSolutionImage()
+                self?.viewSolution.startExporting()
+                
+                DispatchQueue.global(qos:DispatchQoS.QoSClass.background).async
+                { [weak self] in
+                        
+                    guard
+                        
+                        let steps:[MLinearEquationsSolutionStep] = self?.model.steps
+                        
+                    else
+                    {
+                        return
+                    }
+                    
+                    self?.shareStepsImage(steps:steps)
+                }
             }
         }
         

        present(alert, animated:true, completion:nil)
    }
    
    func share(step:Int)
    {
        let title:String = String(
            format:NSLocalizedString("CLinearEquationsSolution_shareStepTitle", comment:""),
            "\((step + 1))")
        
        let alert:UIAlertController = UIAlertController(
            title:title,

        UIGraphicsEndImageContext()
        let sharingItems:[Any] = [image]
        
        DispatchQueue.main.async
        { [weak self] in
            
            self?.share(items:sharingItems)
            self?.viewSolution.endExporting()
        }
    }
    
    private func share(items:[Any])
