     
     //MARK: - Helper
     
-    fileprivate func loadImage() {
+    fileprivate func loadImage(completion: (() -> Swift.Void)? = nil) {
         DispatchQueue.global().async {
             if let imageURL = URL(string: self.imageURL),
                 let data = try? Data(contentsOf: imageURL),
                 let image = UIImage(data: data) {
                 self.puzzleImage = image
-                DispatchQueue.main.async {
-                    self.showFullImage(for: image, seconds: self.initialTime)
+                if completion != nil {
+                    DispatchQueue.main.async {
+                        completion!()
+                    }
                 }
             }
         }

    func showCompletionAlert() {
        let alert = UIAlertController(title: self.successMsg, message: "",
                                      preferredStyle: .alert)
        
        let ok = UIAlertAction(title: self.successMsg,
                               style: .default, handler: nil)
        alert.addAction(ok)
        
        self.present(alert, animated: true, completion: nil)
    }


        DispatchQueue.main.asyncAfter(deadline: when){
            self.dismiss(animated: true, completion: {
                self.embedVC?.loadPuzzle(with: self.puzzleImage)
            })
        }
    }
