diff --git a/MiniScanner.xcodeproj/project.pbxproj b/MiniScanner.xcodeproj/project.pbxproj
index 4b814676b65df7187e385796c218ed5a8a7486b4..97a4ade93ce1c7ef861a3ba20b0dede2a86fef54 100644
--- a/MiniScanner.xcodeproj/project.pbxproj
+++ b/MiniScanner.xcodeproj/project.pbxproj
@@ -164,6 +164,7 @@
 		6709C0602C6E0005009C3F11 /* UITertiaryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6709C05F2C6E0005009C3F11 /* UITertiaryButton.swift */; };
 		6709C0622C6E2373009C3F11 /* ZoomableScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6709C0612C6E2373009C3F11 /* ZoomableScrollView.swift */; };
 		6709C0642C6E2495009C3F11 /* ZoomableImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6709C0632C6E2495009C3F11 /* ZoomableImageView.swift */; };
+		6709C0662C6E2C87009C3F11 /* EditScreenMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6709C0652C6E2C87009C3F11 /* EditScreenMode.swift */; };
 		67106C942C4EAC0100874BFC /* CustomTabBarLayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67106C922C4EAC0000874BFC /* CustomTabBarLayerProtocol.swift */; };
 		67106C952C4EAC0100874BFC /* CustomTabBarLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67106C932C4EAC0000874BFC /* CustomTabBarLayer.swift */; };
 		672C46442C47B1F300497EF0 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 672C46432C47B1F300497EF0 /* Localizable.xcstrings */; };
@@ -498,6 +499,7 @@
 		6709C05F2C6E0005009C3F11 /* UITertiaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UITertiaryButton.swift; sourceTree = "<group>"; };
 		6709C0612C6E2373009C3F11 /* ZoomableScrollView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZoomableScrollView.swift; sourceTree = "<group>"; };
 		6709C0632C6E2495009C3F11 /* ZoomableImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZoomableImageView.swift; sourceTree = "<group>"; };
+		6709C0652C6E2C87009C3F11 /* EditScreenMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditScreenMode.swift; sourceTree = "<group>"; };
 		67106C922C4EAC0000874BFC /* CustomTabBarLayerProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomTabBarLayerProtocol.swift; sourceTree = "<group>"; };
 		67106C932C4EAC0000874BFC /* CustomTabBarLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomTabBarLayer.swift; sourceTree = "<group>"; };
 		672C46432C47B1F300497EF0 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
@@ -1026,6 +1028,7 @@
 				53EDED9A2C183CB600DB8DF9 /* CustomCells */,
 				53BAE0EB2C15E0890072189E /* EditViewController.swift */,
 				53BAE0EC2C15E0890072189E /* EditViewController.xib */,
+				6709C0652C6E2C87009C3F11 /* EditScreenMode.swift */,
 			);
 			path = EditViewController;
 			sourceTree = "<group>";
@@ -2096,6 +2099,7 @@
 				535983EB2C142B16003EB6ED /* UILabel+Extensions.swift in Sources */,
 				677E65E52C5A36920039E2C5 /* DeleteScanSessionUseCase.swift in Sources */,
 				678BD7172C4CF1EB00833DA5 /* SettingsViewModel.swift in Sources */,
+				6709C0662C6E2C87009C3F11 /* EditScreenMode.swift in Sources */,
 				EC8A9B10254DC6DD00F9AF99 /* PDFManager.swift in Sources */,
 				677E65E72C5A36990039E2C5 /* AddScanSessionUseCase.swift in Sources */,
 				5399964B2C26E86700671340 /* FlashButton.m in Sources */,
diff --git a/MiniScanner/Modules/EditViewController/EditScreenMode.swift b/MiniScanner/Modules/EditViewController/EditScreenMode.swift
new file mode 100644
index 0000000000000000000000000000000000000000..7ed4320c6772a74635480d5cea15a694f8c745d8
--- /dev/null
+++ b/MiniScanner/Modules/EditViewController/EditScreenMode.swift
@@ -0,0 +1,16 @@
+//
+//  EditScreenMode.swift
+//  MiniScanner
+//
+//  Created by Mustafa Merza on 8/15/24.
+//  Copyright © 2024 AppsNectar. All rights reserved.
+//
+
+import Foundation
+
+enum EditScreenMode {
+    
+    case normal
+    case cropping
+    case signing
+}
diff --git a/MiniScanner/Modules/EditViewController/EditViewController.swift b/MiniScanner/Modules/EditViewController/EditViewController.swift
index 102ae0ebde5f5bfb5db525bd40f2b13272a5a8b0..18566a3a3a8cf6c69098a9fc90b924aded17f93e 100644
--- a/MiniScanner/Modules/EditViewController/EditViewController.swift
+++ b/MiniScanner/Modules/EditViewController/EditViewController.swift
@@ -54,6 +54,10 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
     @IBOutlet weak var exportTextImageView: UIImageView!
     @IBOutlet weak var signatureImageView: UIImageView!
     
+    @IBOutlet weak var rotateLeftImageView: UIImageView!
+    @IBOutlet weak var rotateRightImageView: UIImageView!
+    @IBOutlet weak var autoDetectionImageView: UIImageView!
+    
     @Inject var addScanSessionUseCase: AddScanSessionUseCase
     @Inject var updateScanSessionUseCase: UpdateScanSessionUseCase
     
@@ -71,6 +75,13 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
     var sharingViewController: UIViewController { self }
     
     // MARK: - Properties
+    
+    private var screenMode: EditScreenMode = .normal {
+        didSet {
+            handleScreenMode()
+        }
+    }
+    
     private var scanSession: ScanSession!
     
     private var selectedIndex: Int = 0
@@ -88,28 +99,6 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
     private var detectedRectangleFeature = CIRectangleFeature()
     private var sharedDetector = CDImageRectangleDetector()
     
-    private var isSigning: Bool = false {
-        didSet {
-            if !isSigning {
-                banner.pagerView.isScrollEnabled = true
-            }
-        }
-    }
-    
-    private var isCropping: Bool = false {
-        didSet {
-            
-            banner.pagerView.isScrollEnabled = !isCropping
-            
-            if isCropping {
-                displayCropButtons()
-            }
-            else {
-                hideCropButtons()
-            }
-        }
-    }
-    
     private var name: String = ""
     
     lazy var activityIndicator: UIActivityIndicatorView = {
@@ -147,6 +136,9 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
         scanSession = .newSession()
         fatalError("init(coder:) should not be called for this class")
     }
+}
+
+extension EditViewController {
     
     private func setupUI() {
         
@@ -223,6 +215,10 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
         editImageView.customTint(.gray600)
         exportTextImageView.customTint(.gray600)
         signatureImageView.customTint(.gray600)
+        
+        rotateLeftImageView.customTint(.gray600)
+        rotateRightImageView.customTint(.gray600)
+        autoDetectionImageView.customTint(.gray600)
     }
     
     private func setupFonts() {
@@ -238,40 +234,7 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
         cropLabel.set(font: .medium(14))
     }
     
-    // MARK: - Methods
-    @objc func backTapped() {
-        if navigationItem.rightBarButtonItem == nil {
-            
-            navigationController?.popViewController(animated: true)
-        } else {
-            
-            let alertController = UIAlertController(title: .alert.localized, message: .discardChangesMsg.localized, preferredStyle: .alert)
-            
-            let okAction = UIAlertAction(title: .discard.localized, style: .destructive) {  [weak self] (action) in
-                guard let self else { return }
-                
-                dismiss(animated: true) {
-                    
-                    self.discardChanges()
-                    
-                    self.navigationController?.popViewController(animated: true)
-                }
-            }
-            
-            let cancelAction = UIAlertAction(title: .cancel.localized, style: .cancel) {  [weak self] (action) in
-                guard let self else { return }
-                
-                dismiss(animated: true)
-            }
-            
-            alertController.addAction(okAction)
-            alertController.addAction(cancelAction)
-            
-            present(alertController, animated: true, completion: nil)
-        }
-    }
-    
-    func configImageEditor() {
+    private func configImageEditor() {
         ZLImageEditorConfiguration.default()
             .imageStickerContainerView(ImageStickerContainerView())
             .fontChooserContainerView(FontChooserContainerView())
@@ -284,75 +247,6 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
         config.tools.append(.adjust)
     }
     
-    @objc func onTouchDoneButton() {
-        if isSigning {
-            
-            isSigning = false
-            
-            let items = scanSession.scannedItems
-            
-            if !banner.signAllDoc {
-                
-                let cell = banner.pagerView.cellForItemat(index: self.banner.pagerView.currentIndex)
-                
-                cell?.prepareCellForScreenshot()
-                
-                let image = cell?.contentView.TakeScreenshot()
-                
-                cell?.restoreCellAfterScreenshot()
-                
-                cell?.selectedStickerView1?.removeFromSuperview()
-                
-                if let image {
-                    
-                    let index = banner.pagerView.currentIndex
-                    
-                    replacePageImage(image: image, at: index)
-                    
-                    banner.pagerView.reloadData(at: index)
-                    
-                    navigationItem.rightBarButtonItem = nil
-                }
-            } else {
-                
-                for (index, item) in items.enumerated() {
-                    
-                    let image = item.screenShot
-                    
-                    if let image {
-                        
-                        replacePageImage(image: image, at: index)
-                    }
-                }
-                
-                banner.pagerView.reloadData()
-                
-                navigationItem.rightBarButtonItem = nil
-            }
-        } else {
-            
-            isCropping = false
-            
-            if let editView = banner.pagerView.cellForItem(at: banner.pagerView.currentIndex) {
-                editView.trashButton.isHidden = false
-                editView.previewButton.isHidden = false
-            }
-            
-            if let image = overlayView.cropImage(self.originalImage) {
-                
-                let index = banner.pagerView.currentIndex
-                
-                replacePageImage(image: image, at: index)
-                
-                banner.pagerView.reloadData(at: index)
-                
-                navigationItem.rightBarButtonItem = nil
-                
-                overlayView.removeFromSuperview()
-            }
-        }
-    }
-    
     private func getCurrentRotationAngle() -> Double{
         switch self.deviceOrientationHelper.currentDeviceOrientation {
         case .landscapeRight:
@@ -372,7 +266,7 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
         print("Orientation changed: \(deviceOrientationHelper.currentDeviceOrientation.rawValue)")
     }
     
-    func updatePageLabel() {
+    private func updatePageLabel() {
         
         pageIndex.set(text: "\(selectedIndex + 1)/\(scanSession.scannedItems.count)")
         
@@ -381,6 +275,33 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
         previousPageButton.isEnabled = selectedIndex > 0
         nextPageButton.isEnabled = selectedIndex < scanSession.itemsCount - 1
     }
+}
+
+extension EditViewController {
+    
+    @objc func backTapped() {
+        
+        switch screenMode {
+        case .normal:
+            handleBackInNormalMode()
+        case .cropping:
+            handleBackInCroppingMode()
+        case .signing:
+            handleBackInSigningMode()
+        }
+    }
+    
+    @objc func onTouchDoneButton() {
+        
+        switch screenMode {
+        case .normal:
+            handleDoneInNormalMode()
+        case .cropping:
+            handleDoneInCroppingMode()
+        case .signing:
+            handleDoneInSigningMode()
+        }
+    }
     
     // MARK: - Actions
     @IBAction func backIndex(_ sender: UIButton) {
@@ -406,34 +327,14 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
     }
     
     @IBAction func continueTapped(_ sender: UIButton) {
-        if self.navigationItem.rightBarButtonItem == nil {
-            
-            displayShareSheet()
-        } else {
-            
-            let alertController = UIAlertController(title: .alert.localized, message: .discardChangesAndContinueMsg.localized, preferredStyle: .alert)
-            
-            let okAction = UIAlertAction(title: .yes.localized, style: .destructive) {  [weak self] (action) in
-                guard let self else { return }
-                
-                dismiss(animated: true) {
-                    
-                    self.discardChanges()
-                    
-                    self.displayShareSheet()
-                }
-            }
-            
-            let cancelAction = UIAlertAction(title: .cancel.localized, style: .cancel) {  [weak self] (action) in
-                guard let self else { return }
-                
-                dismiss(animated: true)
-            }
-            
-            alertController.addAction(okAction)
-            alertController.addAction(cancelAction)
-            
-            present(alertController, animated: true, completion: nil)
+        
+        switch screenMode {
+        case .normal:
+            handleContinueInNormalMode()
+        case .cropping:
+            handleContinueInCroppingMode()
+        case .signing:
+            handleContinueInSigningMode()
         }
     }
     
@@ -493,18 +394,7 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
     
     // MARK: - TABBAR ACTION
     @IBAction func editButtonTapped(_ sender: UIButton) {
-        if let img = scanSession.scannedItems[banner.pagerView.currentIndex].newRenderedImage?.retrieveImage() {
-            
-            ZLEditImageViewController.showEditImageVC(parentVC: self, image: img, editModel: nil) { [weak self] resImage, editModel in
-                guard let self else { return }
-                
-                let index = banner.pagerView.currentIndex
-                
-                replacePageImage(image: resImage, at: index)
-                
-                banner.pagerView.reloadData(at: index)
-            }
-        }
+        displayEditImageViewController()
     }
     
     @IBAction func ocrTapped(_ sender: UIButton) {
@@ -512,53 +402,227 @@ public class EditViewController: UIViewController, ScanSessionSharable, ScanSess
     }
     
     @IBAction func cropTapped(_ sender: UIButton) {
+        displayCropOptions()
+    }
+    
+    @IBAction func signatureTapped(_ sender: UIButton) {
+        displaySignatureViewController()
+    }
+    
+    @IBAction func saveCropButtonTapped(_ sender: Any) {
+        onTouchDoneButton()
+    }
+    
+    @IBAction func rotateRightTapped(_ sender: Any) {
         
-        if let origImage = scanSession.scannedItems[banner.pagerView.currentIndex].newRenderedImage?.retrieveImage() {
+    }
+    
+    @IBAction func autoDetectionTapped(_ sender: Any) {
+        
+    }
+    
+    @IBAction func rotateLeftTapped(_ sender: Any) {
+        
+    }
+}
+
+
+extension EditViewController {
+    
+    private func handleScreenMode() {
+        switch screenMode {
+        case .normal:
             
-            originalImage = origImage
+            navigationItem.rightBarButtonItem = nil
+            
+            banner.pagerView.isScrollEnabled = true
+            hideCropButtons()
+            
+        case .cropping:
+            
+            banner.pagerView.isScrollEnabled = false
+            displayCropButtons()
+            
+        case .signing:
+            
+            banner.pagerView.isScrollEnabled = true
         }
+    }
+}
+
+extension EditViewController {
+    
+    private func handleDoneInNormalMode() {
         
-        DispatchQueue.main.async {
-            let rect = AVMakeRect(aspectRatio: self.originalImage.size, insideRect: self.banner.bounds)
-            if let editView = self.banner.pagerView.cellForItem(at: self.banner.pagerView.currentIndex) {
-                editView.trashButton.isHidden = true
-                editView.previewButton.isHidden = true
-                editView.contentView.frame = rect
-            }
+    }
+    
+    private func handleDoneInCroppingMode() {
+        
+        screenMode = .normal
+        
+        if let editView = banner.pagerView.cellForItem(at: banner.pagerView.currentIndex) {
+            editView.trashButton.isHidden = false
+            editView.previewButton.isHidden = false
         }
         
-        isCropping = true
+        if let image = overlayView.cropImage(self.originalImage) {
+            
+            let index = banner.pagerView.currentIndex
+            
+            replacePageImage(image: image, at: index)
+            
+            banner.pagerView.reloadData(at: index)
+            
+            overlayView.removeFromSuperview()
+        }
+    }
+    
+    private func handleDoneInSigningMode() {
         
-        let cropButton = UIBarButtonItem(title: .crop.localized, style: .plain, target: self, action: #selector(self.onTouchDoneButton))
+        screenMode = .normal
         
-        navigationItem.rightBarButtonItem = cropButton
+        let items = scanSession.scannedItems
         
-        perform(#selector(setUpCropView), with: self, afterDelay: 0.2)
+        if !banner.signAllDoc {
+            
+            let cell = banner.pagerView.cellForItemat(index: self.banner.pagerView.currentIndex)
+            
+            cell?.prepareCellForScreenshot()
+            
+            let image = cell?.contentView.TakeScreenshot()
+            
+            cell?.restoreCellAfterScreenshot()
+            
+            cell?.selectedStickerView1?.removeFromSuperview()
+            
+            if let image {
+                
+                let index = banner.pagerView.currentIndex
+                
+                replacePageImage(image: image, at: index)
+                
+                banner.pagerView.reloadData(at: index)
+            }
+        } else {
+            
+            for (index, item) in items.enumerated() {
+                
+                let image = item.screenShot
+                
+                if let image {
+                    
+                    replacePageImage(image: image, at: index)
+                }
+            }
+            
+            banner.pagerView.reloadData()
+        }
     }
+}
+
+extension EditViewController {
     
-    @IBAction func signatureTapped(_ sender: UIButton) {
-        displaySignatureViewController()
+    private func handleContinueInNormalMode() {
+        displayShareSheet()
     }
     
-    @IBAction func saveCropButtonTapped(_ sender: Any) {
-        onTouchDoneButton()
+    private func handleContinueInCroppingMode() {
+        displayDiscardChangesDialog()
     }
     
-    @IBAction func rotateRightTapped(_ sender: Any) {
+    private func handleContinueInSigningMode() {
+        displayDiscardChangesDialog()
+    }
+}
+extension EditViewController {
+    
+    private func handleBackInNormalMode() {
+        navigationController?.popViewController(animated: true)
+    }
+    
+    private func handleBackInCroppingMode() {
+        displayDiscardChangesDialog()
+    }
+    
+    private func handleBackInSigningMode() {
+        displayDiscardChangesDialog()
+    }
+    
+    private func displayDiscardChangesDialog() {
+        
+        let alertController = UIAlertController(title: .alert.localized, message: .discardChangesMsg.localized, preferredStyle: .alert)
+        
+        let okAction = UIAlertAction(title: .discard.localized, style: .destructive) {  [weak self] (action) in
+            guard let self else { return }
+            
+            dismiss(animated: true) {
+                
+                switch self.screenMode {
+                case .normal:
+                    break
+                case .cropping:
+                    self.discardCropChanges()
+                case .signing:
+                    self.discardSignatureChanges()
+                }
+                
+                self.banner.pagerView.reloadData()
+                
+                self.navigationItem.rightBarButtonItem = nil
+                
+                self.screenMode = .normal
+            }
+        }
         
+        let cancelAction = UIAlertAction(title: .cancel.localized, style: .cancel) {  [weak self] (action) in
+            guard let self else { return }
+            
+            dismiss(animated: true)
+        }
+        
+        alertController.addAction(okAction)
+        alertController.addAction(cancelAction)
+        
+        present(alertController, animated: true, completion: nil)
     }
     
-    @IBAction func autoDetectionTapped(_ sender: Any) {
+    private func discardSignatureChanges() {
         
+        let items = scanSession.scannedItems
+        
+        for item in items {
+            item.signtureImage = UIImage()
+            item.rotate = 0
+            item.signaturePosition = .zero
+            item.screenShot = UIImage()
+            item.size = .zero
+        }
     }
     
-    @IBAction func rotateLeftTapped(_ sender: Any) {
+    private func discardCropChanges() {
         
+        overlayView.removeFromSuperview()
     }
 }
 
 extension EditViewController {
     
+    private func displayEditImageViewController() {
+        
+        if let image = scanSession.scannedItems[banner.pagerView.currentIndex].newRenderedImage?.retrieveImage() {
+            
+            ZLEditImageViewController.showEditImageVC(parentVC: self, image: image, editModel: nil) { [weak self] resImage, editModel in
+                guard let self else { return }
+                
+                let index = banner.pagerView.currentIndex
+                
+                replacePageImage(image: resImage, at: index)
+                
+                banner.pagerView.reloadData(at: index)
+            }
+        }
+    }
+    
     private func displayShareSheet() {
         
         let popup = ShareSheetViewController()
@@ -590,6 +654,31 @@ extension EditViewController {
         }
     }
     
+    private func displayCropOptions() {
+        
+        if let origImage = scanSession.scannedItems[banner.pagerView.currentIndex].newRenderedImage?.retrieveImage() {
+            
+            originalImage = origImage
+        }
+        
+        DispatchQueue.main.async {
+            let rect = AVMakeRect(aspectRatio: self.originalImage.size, insideRect: self.banner.bounds)
+            if let editView = self.banner.pagerView.cellForItem(at: self.banner.pagerView.currentIndex) {
+                editView.trashButton.isHidden = true
+                editView.previewButton.isHidden = true
+                editView.contentView.frame = rect
+            }
+        }
+        
+        screenMode = .cropping
+        
+        let cropButton = UIBarButtonItem(title: .crop.localized, style: .plain, target: self, action: #selector(self.onTouchDoneButton))
+        
+        navigationItem.rightBarButtonItem = cropButton
+        
+        perform(#selector(setUpCropView), with: self, afterDelay: 0.2)
+    }
+    
     private func displayCropButtons() {
         editButtonsStackView.isHidden = true
         cropButtonsStackView.isHidden = false
@@ -600,25 +689,6 @@ extension EditViewController {
         cropButtonsStackView.isHidden = true
     }
     
-    private func discardChanges() {
-        
-        let items = scanSession.scannedItems
-        
-        for item in items {
-            item.signtureImage = UIImage()
-            item.rotate = 0
-            item.signaturePosition = .zero
-            item.screenShot = UIImage()
-            item.size = .zero
-        }
-        
-        banner.pagerView.reloadData()
-        
-        navigationItem.rightBarButtonItem = nil
-        
-        overlayView.removeFromSuperview()
-    }
-    
     private func displayAddSignatureDialog(signatureImage: UIImage) {
         
         let alertController = UIAlertController(title: "", message: .signMsg.localized, preferredStyle: .alert)
@@ -651,7 +721,8 @@ extension EditViewController {
         let cancelAction = UIAlertAction(title: .cancel.localized, style: .cancel) { [weak self] (action) in
             guard let self else { return }
             
-            isSigning = false
+            screenMode = .normal
+            
             dismiss(animated: true)
         }
         
@@ -771,9 +842,14 @@ extension EditViewController: BannerViewDelegate {
     func deleteSignAt(index: Int) {
         scanSession.scannedItems[index].signtureImage = UIImage()
         
-        if !banner.signAllDoc {
-            isSigning = false
+        let signaturesCount = scanSession.scannedItems.filter { $0.signtureImage != nil && $0.signtureImage != UIImage() }.count
+        
+        print("Heha", signaturesCount)
+        
+        if signaturesCount == 0 {
+            screenMode = .normal
         }
+        
         banner.pagerView.reloadData()
     }
     
@@ -923,7 +999,7 @@ extension EditViewController: SignatureDelegate {
     
     func epSignature(didSign signatureImage: UIImage, boundingRect: CGRect) {
         
-        isSigning = true
+        screenMode = .signing
         
         self.signatureImage = signatureImage
         
diff --git a/MiniScanner/Modules/EditViewController/EditViewController.xib b/MiniScanner/Modules/EditViewController/EditViewController.xib
index a43579b258891e0f5263bb74773c8c9ca7153ca6..8315f1e67c8f376e8de68c881d62e1411b7bdfa9 100644
--- a/MiniScanner/Modules/EditViewController/EditViewController.xib
+++ b/MiniScanner/Modules/EditViewController/EditViewController.xib
@@ -20,6 +20,7 @@
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="EditViewController" customModule="MiniScanner" customModuleProvider="target">
             <connections>
+                <outlet property="autoDetectionImageView" destination="bfY-c3-Ugi" id="XdK-E7-SFZ"/>
                 <outlet property="autoDetectionLabel" destination="3ua-9x-3ZE" id="3CC-Ej-ssW"/>
                 <outlet property="banner" destination="4ep-ST-cZS" id="WFR-ov-H7F"/>
                 <outlet property="continueButton" destination="jE5-UT-fB1" id="v74-7i-T0B"/>
@@ -35,7 +36,9 @@
                 <outlet property="nextPageButton" destination="Zhd-7n-Vkh" id="Mih-BG-xEl"/>
                 <outlet property="pageIndex" destination="cqF-h7-7PR" id="KbK-o3-cPN"/>
                 <outlet property="previousPageButton" destination="3Oy-6E-tPl" id="4Wz-tD-ueD"/>
+                <outlet property="rotateLeftImageView" destination="fhs-7Y-dA0" id="z2H-QK-rZ5"/>
                 <outlet property="rotateLeftLabel" destination="B3S-6c-OhV" id="g9B-y6-BDj"/>
+                <outlet property="rotateRightImageView" destination="Kbs-wl-1Ja" id="ppp-Ii-QTA"/>
                 <outlet property="rotateRightLabel" destination="xlr-tI-WaL" id="Lup-R6-y2j"/>
                 <outlet property="saveCropButton" destination="oHb-tw-dkv" id="xUA-La-bKm"/>
                 <outlet property="shareTypeButton" destination="U1b-fk-5ai" id="TCj-8k-BM3"/>
@@ -261,7 +264,7 @@
                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aGp-MO-3Od">
                     <rect key="frame" x="16" y="812" width="398" height="120"/>
                     <subviews>
-                        <stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="718-GQ-BuB" userLabel="Edit Buttons">
+                        <stackView opaque="NO" contentMode="scaleToFill" distribution="equalSpacing" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="718-GQ-BuB" userLabel="Edit Buttons">
                             <rect key="frame" x="0.0" y="0.0" width="398" height="90"/>
                             <subviews>
                                 <view hidden="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ilb-67-Nes">
@@ -301,23 +304,23 @@
                                     </constraints>
                                 </view>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BAt-0v-QCp">
-                                    <rect key="frame" x="0.0" y="0.0" width="99.666666666666671" height="90"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="50" height="90"/>
                                     <subviews>
                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="edit-ic" translatesAutoresizingMaskIntoConstraints="NO" id="ooZ-SP-MTR">
-                                            <rect key="frame" x="32.333333333333336" y="12" width="35.000000000000007" height="35"/>
+                                            <rect key="frame" x="7.6666666666666679" y="12" width="35" height="35"/>
                                             <constraints>
                                                 <constraint firstAttribute="width" constant="35" id="Kx2-wR-oZT"/>
                                                 <constraint firstAttribute="height" constant="35" id="O8q-pH-0fM"/>
                                             </constraints>
                                         </imageView>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="edit" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qsI-va-wrT">
-                                            <rect key="frame" x="0.0" y="52" width="99.666666666666671" height="20"/>
+                                            <rect key="frame" x="0.0" y="52" width="50" height="20"/>
                                             <fontDescription key="fontDescription" name="Poppins-Regular" family="Poppins" pointSize="17"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tYF-EJ-SgN">
-                                            <rect key="frame" x="0.0" y="0.0" width="99.666666666666671" height="90"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="50" height="90"/>
                                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                             <connections>
                                                 <action selector="editButtonTapped:" destination="-1" eventType="touchUpInside" id="fXr-i1-mQm"/>
@@ -338,23 +341,23 @@
                                     </constraints>
                                 </view>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="BJX-OA-bae">
-                                    <rect key="frame" x="99.666666666666686" y="0.0" width="99.333333333333314" height="90"/>
+                                    <rect key="frame" x="76.333333333333329" y="0.0" width="82.999999999999986" height="90"/>
                                     <subviews>
                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scan-ic" translatesAutoresizingMaskIntoConstraints="NO" id="mvC-Zj-Plh">
-                                            <rect key="frame" x="31.999999999999986" y="12" width="35" height="35"/>
+                                            <rect key="frame" x="24" y="12" width="35" height="35"/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="35" id="9lk-jm-95U"/>
                                                 <constraint firstAttribute="width" constant="35" id="KkF-U0-Sps"/>
                                             </constraints>
                                         </imageView>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Export text" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7JD-iL-DeH">
-                                            <rect key="frame" x="0.0" y="52" width="99.333333333333329" height="20.333333333333329"/>
+                                            <rect key="frame" x="0.0" y="52" width="83" height="20.333333333333329"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="iVs-aT-KbC">
-                                            <rect key="frame" x="0.0" y="0.0" width="99.333333333333329" height="90"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="83" height="90"/>
                                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                             <connections>
                                                 <action selector="ocrTapped:" destination="-1" eventType="touchUpInside" id="jaQ-ME-HOT"/>
@@ -375,23 +378,23 @@
                                     </constraints>
                                 </view>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="auU-4h-Wqw">
-                                    <rect key="frame" x="199" y="0.0" width="99.666666666666686" height="90"/>
+                                    <rect key="frame" x="185.33333333333334" y="0.0" width="94.000000000000028" height="90"/>
                                     <subviews>
                                         <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="signature-ic" translatesAutoresizingMaskIntoConstraints="NO" id="VaC-Qb-0cF">
-                                            <rect key="frame" x="32.333333333333343" y="12" width="35" height="35"/>
+                                            <rect key="frame" x="29.666666666666657" y="12" width="35" height="35"/>
                                             <constraints>
                                                 <constraint firstAttribute="width" constant="35" id="nR9-vm-iOp"/>
                                                 <constraint firstAttribute="height" constant="35" id="uXK-LC-eo2"/>
                                             </constraints>
                                         </imageView>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="signature" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wyA-kN-C8j">
-                                            <rect key="frame" x="14.333333333333343" y="52" width="71" height="20.333333333333329"/>
+                                            <rect key="frame" x="11.666666666666657" y="52" width="71" height="20.333333333333329"/>
                                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                             <nil key="textColor"/>
                                             <nil key="highlightedColor"/>
                                         </label>
                                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="1gC-XS-O2e">
-                                            <rect key="frame" x="0.0" y="0.0" width="99.666666666666671" height="90"/>
+                                            <rect key="frame" x="0.0" y="0.0" width="94" height="90"/>
                                             <inset key="imageEdgeInsets" minX="0.0" minY="0.0" maxX="2.2250738585072014e-308" maxY="0.0"/>
                                             <connections>
                                                 <action selector="signatureTapped:" destination="-1" eventType="touchUpInside" id="oKV-wj-LNT"/>
@@ -411,10 +414,10 @@
                                     </constraints>
                                 </view>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bgA-NI-AzQ">
-                                    <rect key="frame" x="298.66666666666669" y="0.0" width="99.333333333333314" height="90"/>
+                                    <rect key="frame" x="305.66666666666669" y="0.0" width="92.333333333333314" height="90"/>
                                     <subviews>
                                         <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jE5-UT-fB1" customClass="UIPrimaryButton" customModule="MiniScanner" customModuleProvider="target">
-                                            <rect key="frame" x="0.0" y="17.666666666666629" width="99.333333333333329" height="55"/>
+                                            <rect key="frame" x="0.0" y="17.666666666666629" width="92.333333333333329" height="55"/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="55" id="JX1-6T-Gsm"/>
                                             </constraints>