             
             if let screenshot = screenshot {
                 report.add(image: screenshot)
+            }
+            
+            self.currentReport = report
+            
+            if let delegate = self.delegate {
+                
+                delegate.userDidStartAReport(report)
+                
+                if let otherImages = delegate.appendMoreImages(to: report) {
+                    for image in otherImages {
+                        report.add(image: image)
+                    }
+                }
             }
             
             switch self.reportingMode {
             case .email:
                 if !MFMailComposeViewController.canSendMail() {
-                    if self.debug {
+                    if self.debugEnabled {
                         debugPrint("Mail services are not available")
                     }
                     return
                 }
                 
-                if self.debug {
+                if self.debugEnabled {
                     debugPrint("Reporting information\n====================\n\(report.json())\n====================")
                 }
                 
                 self.emailReport(report, from: topVC)
                 
-                break
+                return
                 
             default: break
             }
             
+            self.currentReport = nil
         })
     }
     

        })
    }
    
    public func disableDebug() {
        self.debug = false
    }
    
    private func processReport(from notification : Notification) {
        if debug {
            debugPrint("didDectectAnScreenshotTaken: \(notification)")
            debugPrint("repoting mode: \(self.reportingMode.rawValue)")
        }
        
        guard delegate != nil else {
            if debug {
                debugPrint("Bug Report delegate is not set. report will not be handled")
            }
            return
        }
        
        guard let topVC = topViewController() else {
            if self.debug {
                debugPrint("Bug Report did not find a View Controller to present the report")
            }
            return

    fileprivate var applicationId: String
    fileprivate var reportingMode: ReportingMode
    fileprivate var delegate : BugReporterDelegate?
    fileprivate var currentReport : Report?
    
    //MARK: Debug Variable
    fileprivate var debugEnabled = false
    
    //MARK: Init
    private override init() {
