diff --git a/include/dimm.hpp b/include/dimm.hpp
index 72885ff..26ba3d8 100644
--- a/include/dimm.hpp
+++ b/include/dimm.hpp
@@ -21,6 +21,7 @@
 #include <xyz/openbmc_project/Inventory/Connector/Slot/server.hpp>
 #include <xyz/openbmc_project/Inventory/Decorator/Asset/server.hpp>
 #include <xyz/openbmc_project/Inventory/Decorator/LocationCode/server.hpp>
+#include <xyz/openbmc_project/Inventory/Item/Dimm/MemoryLocation/server.hpp>
 #include <xyz/openbmc_project/Inventory/Item/Dimm/server.hpp>
 #include <xyz/openbmc_project/Inventory/Item/server.hpp>
 #include <xyz/openbmc_project/State/Decorator/OperationalStatus/server.hpp>
@@ -37,9 +38,14 @@
 using EccType =
     sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::Ecc;
 
+using MemoryTechType =
+    sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm::MemoryTech;
+
 class Dimm :
     sdbusplus::server::object_t<
         sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm>,
+    sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                    inventory::item::dimm::MemoryLocation>,
     sdbusplus::server::object_t<
         sdbusplus::server::xyz::openbmc_project::inventory::decorator::Asset>,
     sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
@@ -69,6 +75,9 @@
             sdbusplus::server::xyz::openbmc_project::inventory::item::Dimm>(
             bus, objPath.c_str()),
         sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
+                                        inventory::item::dimm::MemoryLocation>(
+            bus, objPath.c_str()),
+        sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
                                         inventory::decorator::Asset>(
             bus, objPath.c_str()),
         sdbusplus::server::object_t<sdbusplus::server::xyz::openbmc_project::
@@ -106,6 +115,9 @@
     std::string partNumber(std::string value) override;
     std::string locationCode(std::string value) override;
     size_t memoryAttributes(size_t value) override;
+    MemoryTechType memoryMedia(MemoryTechType value) override;
+    uint8_t slot(uint8_t value) override;
+    uint8_t socket(uint8_t value) override;
     uint16_t memoryConfiguredSpeedInMhz(uint16_t value) override;
     bool functional(bool value) override;
     EccType ecc(EccType value) override;
@@ -126,6 +138,7 @@
     void dimmTypeDetail(const uint16_t detail);
     void dimmManufacturer(const uint8_t positionNum, const uint8_t structLen,
                           uint8_t* dataIn);
+    void dimmMedia(const uint8_t type);
     void dimmSerialNum(const uint8_t positionNum, const uint8_t structLen,
                        uint8_t* dataIn);
     void dimmPartNum(const uint8_t positionNum, const uint8_t structLen,
@@ -230,6 +243,12 @@
     {0x5, EccType::SingleBitECC}, {0x6, EccType::MultiBitECC},
     {0x7, EccType::NoECC}};
 
+const std::map<uint8_t, MemoryTechType> dimmMemoryTechTypeMap = {
+    {0x1, MemoryTechType::Other},      {0x2, MemoryTechType::Unknown},
+    {0x3, MemoryTechType::DRAM},       {0x4, MemoryTechType::NVDIMM_N},
+    {0x5, MemoryTechType::NVDIMM_F},   {0x6, MemoryTechType::NVDIMM_P},
+    {0x7, MemoryTechType::IntelOptane}};
+
 } // namespace smbios
 
 } // namespace phosphor
