diff --git a/item_updater.cpp b/item_updater.cpp
index 21fb6e0..975c6e9 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -458,7 +458,23 @@
     {
         control::FieldMode::fieldModeEnabled(value);
 
-        helper.enableFieldMode();
+        auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+                                          SYSTEMD_INTERFACE, "StartUnit");
+        method.append("obmc-flash-bmc-setenv@fieldmode\\x3dtrue.service",
+                      "replace");
+        bus.call_noreply(method);
+
+        method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+                                     SYSTEMD_INTERFACE, "StopUnit");
+        method.append("usr-local.mount", "replace");
+        bus.call_noreply(method);
+
+        std::vector<std::string> usrLocal = {"usr-local.mount"};
+
+        method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
+                                     SYSTEMD_INTERFACE, "MaskUnitFiles");
+        method.append(usrLocal, false, true);
+        bus.call_noreply(method);
     }
     else if (!value && control::FieldMode::fieldModeEnabled())
     {
diff --git a/item_updater_helper.hpp b/item_updater_helper.hpp
index 0b67642..13b98da 100644
--- a/item_updater_helper.hpp
+++ b/item_updater_helper.hpp
@@ -59,9 +59,6 @@
      */
     void updateUbootVersionId(const std::string& versionId);
 
-    /** @brief Enable field mode */
-    void enableFieldMode();
-
     /** @brief Mirror Uboot to the alt uboot partition */
     void mirrorAlt();
 
diff --git a/static/item_updater_helper.cpp b/static/item_updater_helper.cpp
index e087d71..164784d 100644
--- a/static/item_updater_helper.cpp
+++ b/static/item_updater_helper.cpp
@@ -10,11 +10,8 @@
 {
 // openbmconce=clean-rwfs-filesystem factory-reset
 #define ENV_FACTORY_RESET "openbmconce\\x3dfactory\\x2dreset"
-#define ENV_ENABLE_FIELD_MODE "fieldmode\\x3dtrue"
 #define SERVICE_FACTORY_RESET                                                  \
     "obmc-flash-bmc-setenv@" ENV_FACTORY_RESET ".service"
-#define SERVICE_ENABLE_FIELD_MODE                                              \
-    "obmc-flash-bmc-setenv@" ENV_ENABLE_FIELD_MODE ".service"
 
 void Helper::setEntry(const std::string& entryId, uint8_t value)
 {
@@ -51,14 +48,6 @@
     // Empty
 }
 
-void Helper::enableFieldMode()
-{
-    auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
-                                      SYSTEMD_INTERFACE, "StartUnit");
-    method.append(SERVICE_ENABLE_FIELD_MODE, "replace");
-    bus.call_noreply(method);
-}
-
 void Helper::mirrorAlt()
 {
     // Empty
diff --git a/ubi/item_updater_helper.cpp b/ubi/item_updater_helper.cpp
index a699d5f..4cc83c4 100644
--- a/ubi/item_updater_helper.cpp
+++ b/ubi/item_updater_helper.cpp
@@ -83,26 +83,6 @@
     }
 }
 
-void Helper::enableFieldMode()
-{
-    auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
-                                      SYSTEMD_INTERFACE, "StartUnit");
-    method.append("obmc-flash-bmc-setenv@fieldmode\\x3dtrue.service",
-                  "replace");
-    bus.call_noreply(method);
-
-    method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
-                                 SYSTEMD_INTERFACE, "StopUnit");
-    method.append("usr-local.mount", "replace");
-    bus.call_noreply(method);
-
-    std::vector<std::string> usrLocal = {"usr-local.mount"};
-
-    method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
-                                 SYSTEMD_INTERFACE, "MaskUnitFiles");
-    method.append(usrLocal, false, true);
-    bus.call_noreply(method);
-}
 void Helper::mirrorAlt()
 {
     auto method = bus.new_method_call(SYSTEMD_BUSNAME, SYSTEMD_PATH,
