diff --git a/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate b/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate
index ad14cabc7ee570ecd5be227744104e34ad95f1ae..4ea608581c47e9d65c3c58fc1a48a69a8b3f6327 100644
Binary files a/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate and b/TraccarClient.xcodeproj/project.xcworkspace/xcuserdata/g.makhoul.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/TraccarClient/Images.xcassets/logout.imageset/Contents.json b/TraccarClient/Images.xcassets/logout.imageset/Contents.json
new file mode 100644
index 0000000000000000000000000000000000000000..9a6f4fd163e42148afca45c4a9507ca07d063527
--- /dev/null
+++ b/TraccarClient/Images.xcassets/logout.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "filename" : "icons8-logout-30.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "filename" : "icons8-logout-60.png",
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "filename" : "icons8-logout-90.png",
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-30.png b/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-30.png
new file mode 100644
index 0000000000000000000000000000000000000000..c252c3dc08d5057f4adc24f8440fc86c85a43903
Binary files /dev/null and b/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-30.png differ
diff --git a/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-60.png b/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-60.png
new file mode 100644
index 0000000000000000000000000000000000000000..6661c4edc0bf8651095e87e91203d29609c665d9
Binary files /dev/null and b/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-60.png differ
diff --git a/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-90.png b/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-90.png
new file mode 100644
index 0000000000000000000000000000000000000000..bfb81f2bfb994d94899517ff7a63d048febc1924
Binary files /dev/null and b/TraccarClient/Images.xcassets/logout.imageset/icons8-logout-90.png differ
diff --git a/TraccarClient/LaunchScreen.xib b/TraccarClient/LaunchScreen.xib
index e7414a655f978524e3c56993d24188e772fba49a..06005472da1cd8af619d17b502d6ece948bb7f96 100644
--- a/TraccarClient/LaunchScreen.xib
+++ b/TraccarClient/LaunchScreen.xib
@@ -21,27 +21,17 @@
                     </constraints>
                     <color key="barTintColor" name="Brand"/>
                 </navigationBar>
-                <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="DeliveryIcon" translatesAutoresizingMaskIntoConstraints="NO" id="chw-lY-qlJ">
-                    <rect key="frame" x="67.5" y="213.5" width="240" height="240"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="240" id="Rtp-MQ-ir8"/>
-                        <constraint firstAttribute="width" constant="240" id="ySq-lc-u6B"/>
-                    </constraints>
-                </imageView>
             </subviews>
             <color key="backgroundColor" systemColor="groupTableViewBackgroundColor"/>
             <constraints>
                 <constraint firstAttribute="trailing" secondItem="jyO-lQ-xCZ" secondAttribute="trailing" id="BVV-Jp-FLs"/>
                 <constraint firstItem="jyO-lQ-xCZ" firstAttribute="top" secondItem="iN0-l3-epB" secondAttribute="top" id="Ra4-bu-wwa"/>
                 <constraint firstItem="jyO-lQ-xCZ" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" id="frB-PI-Vg3"/>
-                <constraint firstItem="chw-lY-qlJ" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="centerY" id="oZD-Ui-4L5"/>
-                <constraint firstItem="chw-lY-qlJ" firstAttribute="centerX" secondItem="iN0-l3-epB" secondAttribute="centerX" id="ypL-5B-XCA"/>
             </constraints>
             <point key="canvasLocation" x="499" y="433"/>
         </view>
     </objects>
     <resources>
-        <image name="DeliveryIcon" width="160" height="160"/>
         <namedColor name="Brand">
             <color red="0.1803921568627451" green="0.49019607843137253" blue="0.19607843137254902" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
         </namedColor>
diff --git a/TraccarClient/MainViewController/ConnectViewController.swift b/TraccarClient/MainViewController/ConnectViewController.swift
index 762c4f9a91ac93cce2aa458f3b7b8e6c94f1225c..7b0f47b9f51ac7e734b247f9a0b4f3b38c79589f 100644
--- a/TraccarClient/MainViewController/ConnectViewController.swift
+++ b/TraccarClient/MainViewController/ConnectViewController.swift
@@ -58,6 +58,7 @@ final class ConnectViewController: KNViewController {
     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(animated)
         hasCustomNavigation = true
+        statusChanged(to: userDefaults.bool(forKey: "service_status_preference"))
     }
     
     
@@ -66,7 +67,6 @@ final class ConnectViewController: KNViewController {
         connectionStatusLogo.set(icon: to ? .connectedLogo : .disconnectedLogo)
         connectButton.set(icon: to ? .connectedButton : .disconnectedButton)
         statusLabel.set(text: to ? "You're on the map!" : "Tracking stopped.", color: .black, font: .bold(20))
-
     }
     
     // MARK: - Actions
diff --git a/TraccarClient/NetworkRequest.swift b/TraccarClient/NetworkRequest.swift
index 71c25164c50daf5b0dcfbe4c9bc2781427aafce8..04623f075e13da8af23123fa3834325fd256ade6 100644
--- a/TraccarClient/NetworkRequest.swift
+++ b/TraccarClient/NetworkRequest.swift
@@ -34,7 +34,7 @@ final class NetworkRequest: NSObject {
         _headers["Accept"] = "application/json"
         _headers["Accept-Language"] = "en"
         _headers["X-App-Client"] = "ios"
-        _headers["x-Company"] = "\(UserDefaults.standard.string(forKey: "xcompany") ?? "")"
+        _headers["X-Company"] = "\(UserDefaults.standard.string(forKey: "xcompany") ?? "")"
         return _headers
     }
     
diff --git a/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.swift b/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.swift
index 5ef3f513786f93c64b514d2b0d6c74bbe8c043b2..1ef62fec8bae16e60494514e89ff869e272e6be2 100644
--- a/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.swift
+++ b/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.swift
@@ -13,6 +13,7 @@ protocol SettingsLogoutTableViewCellDelegate {
 
 class SettingsLogoutTableViewCell: KNTableViewCell {
     // MARK: - Outlets
+    @IBOutlet weak var iconImage: UIImageView!
     @IBOutlet weak var titleLabel: UILabel!
     
     // MARK: - Properties
@@ -21,7 +22,8 @@ class SettingsLogoutTableViewCell: KNTableViewCell {
     // MARK: - LifeCycle
     override func awakeFromNib() {
         super.awakeFromNib()
-        titleLabel.set(text: "", color: .main, font: .semibold(16))
+        titleLabel.set(text: "", color: .main, font: .bold(16))
+        iconImage.set(icon: .logout)
     }
     
     @IBAction func logoutTapped(_ sender: UIButton) {
diff --git a/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.xib b/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.xib
index 55b982c505889ea8ac7fc63c6fa87106dabe6a23..ee4ecb5c4405715dfc124e3a542e9e15f2073bc8 100644
--- a/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.xib
+++ b/TraccarClient/SettingsViewController/Cells/SettingsLogoutTableViewCell/SettingsLogoutTableViewCell.xib
@@ -17,8 +17,15 @@
                 <rect key="frame" x="0.0" y="0.0" width="356" height="51"/>
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
+                    <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Xec-cP-j0X">
+                        <rect key="frame" x="16" y="6.6666666666666714" width="38" height="38"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="38" id="3O2-Xd-Vtv"/>
+                            <constraint firstAttribute="width" constant="38" id="RCe-vk-B16"/>
+                        </constraints>
+                    </imageView>
                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qgN-Rg-e6W">
-                        <rect key="frame" x="16" y="12" width="324" height="27"/>
+                        <rect key="frame" x="70" y="12" width="270" height="27"/>
                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
                         <nil key="textColor"/>
                         <nil key="highlightedColor"/>
@@ -33,17 +40,20 @@
                 </subviews>
                 <constraints>
                     <constraint firstItem="qgN-Rg-e6W" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="2FF-OV-d4W"/>
-                    <constraint firstItem="qgN-Rg-e6W" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="REK-JA-tCK"/>
                     <constraint firstItem="dbK-zb-xEj" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="RZd-uO-PNS"/>
+                    <constraint firstItem="qgN-Rg-e6W" firstAttribute="leading" secondItem="Xec-cP-j0X" secondAttribute="trailing" constant="16" id="VY8-kL-1eK"/>
                     <constraint firstAttribute="trailing" secondItem="qgN-Rg-e6W" secondAttribute="trailing" constant="16" id="a8S-Fs-n0R"/>
+                    <constraint firstItem="Xec-cP-j0X" firstAttribute="centerY" secondItem="H2p-sc-9uM" secondAttribute="centerY" id="gLN-fu-QMu"/>
                     <constraint firstItem="dbK-zb-xEj" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="ihi-jr-XmB"/>
                     <constraint firstAttribute="trailing" secondItem="dbK-zb-xEj" secondAttribute="trailing" id="kHe-Qf-aGN"/>
+                    <constraint firstItem="Xec-cP-j0X" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="nN1-KS-VA0"/>
                     <constraint firstAttribute="bottom" secondItem="qgN-Rg-e6W" secondAttribute="bottom" constant="12" id="sip-vP-MpV"/>
                     <constraint firstAttribute="bottom" secondItem="dbK-zb-xEj" secondAttribute="bottom" id="ska-SV-G3f"/>
                 </constraints>
             </tableViewCellContentView>
             <viewLayoutGuide key="safeArea" id="njF-e1-oar"/>
             <connections>
+                <outlet property="iconImage" destination="Xec-cP-j0X" id="qCh-33-MEB"/>
                 <outlet property="titleLabel" destination="qgN-Rg-e6W" id="hys-mj-Sbt"/>
             </connections>
             <point key="canvasLocation" x="166.41221374045801" y="22.183098591549296"/>
diff --git a/TraccarClient/SettingsViewController/SettingsViewController.swift b/TraccarClient/SettingsViewController/SettingsViewController.swift
index 7cf7ba225fa24dfc1a390d77d8be2e1617c94ff7..d803f9abba0bd4288d0ceb32f227f7df9d1d3d8f 100644
--- a/TraccarClient/SettingsViewController/SettingsViewController.swift
+++ b/TraccarClient/SettingsViewController/SettingsViewController.swift
@@ -92,6 +92,7 @@ final class SettingsViewController: KNViewController {
         return false
     }
 }
+
 extension SettingsViewController: CustomHeaderViewDelegate {
     func rightButtonTapped(action: RightButtonAction) {
         view.endEditing(true)
@@ -123,21 +124,27 @@ extension SettingsViewController: CustomHeaderViewDelegate {
         view.endEditing(true)
         if isChangesOccured() {
             alert(presentingBy: self, confirm: "Save Changes", destructive: "Discard Changes", message: "You have unsaved changes. What do you want to do?") {
+                
                 for item in self.editedTextDefaults {
                     UserDefaults.standard.setValue(item.value, forKey: item.key)
                 }
+                
                 for item in self.editedSwitchDefaults {
                     UserDefaults.standard.setValue(item.value, forKey: item.key)
                 }
+                
                 for item in self.editedMultiChoicesDefaults {
                     UserDefaults.standard.setValue(item.value, forKey: item.key)
                 }
+                
                 if AppDelegate.instance.trackingController != nil {
                     AppDelegate.instance.trackingController = TrackingController()
                     AppDelegate.instance.trackingController?.start()
                 }
+                
                 self.dismiss(animated: true)
                 self.navigationController?.popViewController(animated: true)
+                
             } _: {
                 self.dismiss(animated: true)
                 self.navigationController?.popViewController(animated: true)
@@ -154,13 +161,16 @@ extension SettingsViewController: CustomHeaderViewDelegate {
             spinner.stop()
             if result.success {
                 if let navigation = self.navigationController {
+                    
                     UserModel.clearUserFromUserDefaults()
                     DeviceModel.clearUserFromUserDefaults()
                     SignInModel.clearUserFromUserDefaults()
+                    
                     let coordinator = AuthenticationCoordinator(navigationController: navigation)
                     coordinator.step = .signin
                     coordinator.start()
                 }
+                
             } else {
                 ok(result)
             }
@@ -179,17 +189,33 @@ extension SettingsViewController: UITableViewDelegate, UITableViewDataSource {
         switch section {
         case 0:
             return textDefaults.count
+            
         case 1:
             return multiChoicesDefaults.count
+            
         case 2:
             return switchDefaults.count
+            
         case 3:
             return 1
+            
         default:
             return 0
         }
     }
     
+    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
+        if section == 0 {
+            return "Tracking Parameters"
+        }
+        
+        if section == 3 {
+            return "Settings"
+        }
+        
+        return ""
+    }
+    
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         if indexPath.section == 0 {
             let cell = tableView.dequeue(withCell: SettingsTextTableViewCell.self)
@@ -198,24 +224,28 @@ extension SettingsViewController: UITableViewDelegate, UITableViewDataSource {
             
             return cell
         }
+        
         if indexPath.section == 1 {
             let cell = tableView.dequeue(withCell: SettingsSegmentTableViewCell.self)
             cell.set(defaultValue: multiChoicesDefaults[indexPath.row], index: indexPath.row)
             cell.delegate = self
             return cell
         }
+        
         if indexPath.section == 2 {
             let cell = tableView.dequeue(withCell: SettingsSwitchTableViewCell.self)
             cell.set(defaultValue: switchDefaults[indexPath.row], index: indexPath.row)
             cell.delegate = self
             return cell
         }
+        
         if indexPath.section == 3 {
             let cell = tableView.dequeue(withCell: SettingsLogoutTableViewCell.self)
             cell.set(title: "Logout")
             cell.delegate = self
             return cell
         }
+        
         return UITableViewCell()
     }
     
@@ -229,30 +259,15 @@ extension SettingsViewController: SettingsTextTableViewCellDelegate,
                                   SettingsSwitchTableViewCellDelegate,
                                   SettingsSegmentTableViewCellDelegate {
     func didUpdateText(model: DefaultsModel) {
-//        for (index, item) in textDefaults.enumerated() {
-//            if item.key == model.key {
-//                textDefaults[index].value = model.value
-//            }
-//        }
         editedTextDefaults.append(model)
     }
     
     
     func didUpdateSwitch(model: DefaultsModel) {
-//        for (index, item) in switchDefaults.enumerated() {
-//            if item.key == model.key {
-//                switchDefaults[index].value = model.value
-//            }
-//        }
         editedSwitchDefaults.append(model)
     }
     
     func didUpdateSegment(model: DefaultsModel) {
-//        for (index, item) in multiChoicesDefaults.enumerated() {
-//            if item.key == model.key {
-//                multiChoicesDefaults[index].value = model.value
-//            }
-//        }
         editedMultiChoicesDefaults.append(model)
     }
 }
@@ -260,9 +275,22 @@ extension SettingsViewController: SettingsTextTableViewCellDelegate,
 // MARK: - SettingsLogoutTableViewCellDelegate
 extension SettingsViewController: SettingsLogoutTableViewCellDelegate {
     func logout() {
-        alert(confirm: "Yes", destructive: "No", message: "Are you sure you want to logout?") {
-            self.dismiss(animated: true)
-            self.logoutRequest()
+        if AppDelegate.instance.trackingController != nil {
+            
+            alert(presentingBy: self, confirm: "Yes" , destructive: "Cancel", message: "It seems that you are on the map, do you want to stop the location update before loging out ?") {
+                UserDefaults.standard.set(false, forKey: "service_status_preference")
+                TransactionsViewController.addMessage(NSLocalizedString("Service destroyed", comment: ""))
+                AppDelegate.instance.trackingController?.stop()
+                AppDelegate.instance.trackingController = nil
+                self.dismiss(animated: true)
+                self.logoutRequest()
+            }
+            
+        } else {
+            alert(confirm: "Yes", destructive: "No", message: "Are you sure you want to logout?") {
+                self.dismiss(animated: true)
+                self.logoutRequest()
+            }
         }
     }
 }
diff --git a/TraccarClient/UIImage.swift b/TraccarClient/UIImage.swift
index fa20d8532fcde7a064b53786a07776e77d330954..e63158e962112adde541121522a834bc42282507 100644
--- a/TraccarClient/UIImage.swift
+++ b/TraccarClient/UIImage.swift
@@ -25,6 +25,7 @@ extension UIImage {
     static let thumbsup = img("thumbsup")
     static let updated = img("updated")
     static let thumbsDown = img("thumbDown")
+    static let logout = img("logout")
     
 }
 func img(_ name: String) -> UIImage {