diff --git a/include/estoraged.hpp b/include/estoraged.hpp
index af709a2..c7f0706 100644
--- a/include/estoraged.hpp
+++ b/include/estoraged.hpp
@@ -133,7 +133,7 @@
     std::shared_ptr<sdbusplus::asio::dbus_interface> driveInterface;
 
     /** @brief D-Bus interface for the location of the drive. */
-    std::shared_ptr<sdbusplus::asio::dbus_interface> locationInterface;
+    std::shared_ptr<sdbusplus::asio::dbus_interface> embeddedLocationInterface;
 
     /** @brief Association between chassis and drive. */
     std::shared_ptr<sdbusplus::asio::dbus_interface> association;
diff --git a/src/estoraged.cpp b/src/estoraged.cpp
index 0063e44..9c4fba9 100644
--- a/src/estoraged.cpp
+++ b/src/estoraged.cpp
@@ -99,14 +99,12 @@
             return value;
         });
 
-    locationInterface = objectServer.add_interface(
-        objectPath, "xyz.openbmc_project.Inventory.Decorator.LocationCode");
-    locationInterface->register_property("LocationCode",
-                                         std::string("Embedded"));
+    embeddedLocationInterface = objectServer.add_interface(
+        objectPath, "xyz.openbmc_project.Inventory.Connector.Embedded");
 
     volumeInterface->initialize();
     driveInterface->initialize();
-    locationInterface->initialize();
+    embeddedLocationInterface->initialize();
 
     /* Set up the association between chassis and drive. */
     association = objectServer.add_interface(
@@ -123,7 +121,7 @@
 {
     objectServer.remove_interface(volumeInterface);
     objectServer.remove_interface(driveInterface);
-    objectServer.remove_interface(locationInterface);
+    objectServer.remove_interface(embeddedLocationInterface);
     objectServer.remove_interface(association);
 }
 
