diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index b3b28b4..bba2ca2 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -131,7 +131,7 @@
                 log<level::ERR>(msg.c_str());
                 continue;
             }
-            auto it = interfaces.find(std::string(interfaceName));
+            auto it = interfaces.find(interfaceName);
             if (it == interfaces.end())
             {
                 auto msg = fmt::format("Missing interface({}) for VLAN({}): {}",
@@ -146,7 +146,7 @@
         objPath /= interface;
         config::Parser config(config::pathForIntfConf(confDir, interface));
 
-        auto intf = std::make_shared<phosphor::network::EthernetInterface>(
+        auto intf = std::make_unique<phosphor::network::EthernetInterface>(
             bus, objPath.string(), config, *this);
 
         intf->createIPAddressObjects();
diff --git a/src/network_manager.hpp b/src/network_manager.hpp
index 2d5b255..3002a20 100644
--- a/src/network_manager.hpp
+++ b/src/network_manager.hpp
@@ -1,9 +1,9 @@
 #pragma once
-
 #include "dhcp_configuration.hpp"
 #include "ethernet_interface.hpp"
 #include "routing_table.hpp"
 #include "system_configuration.hpp"
+#include "types.hpp"
 #include "vlan_interface.hpp"
 #include "xyz/openbmc_project/Network/VLAN/Create/server.hpp"
 
@@ -12,7 +12,7 @@
 #include <memory>
 #include <sdbusplus/bus.hpp>
 #include <string>
-#include <utility>
+#include <string_view>
 #include <vector>
 #include <xyz/openbmc_project/Common/FactoryReset/server.hpp>
 
@@ -57,7 +57,7 @@
      */
     Manager(sdbusplus::bus_t& bus, const char* objPath, const std::string& dir);
 
-    ObjectPath vlan(IntfName interfaceName, uint32_t id) override;
+    ObjectPath vlan(std::string interfaceName, uint32_t id) override;
 
     /** @brief write the network conf file with the in-memory objects.
      */
@@ -143,9 +143,9 @@
      * @param[in] intf - the interface name to check.
      * @return true if found, false otherwise.
      */
-    bool hasInterface(const std::string& intf)
+    inline bool hasInterface(std::string_view intf)
     {
-        return (interfaces.find(intf) != interfaces.end());
+        return interfaces.find(intf) != interfaces.end();
     }
 
     /** @brief Get the routing table owned by the manager
@@ -172,7 +172,7 @@
 
     /** @brief Persistent map of EthernetInterface dbus objects and their names
      */
-    std::map<IntfName, std::shared_ptr<EthernetInterface>> interfaces;
+    string_umap<std::unique_ptr<EthernetInterface>> interfaces;
 
     /** @brief BMC network reset - resets network configuration for BMC. */
     void reset() override;
diff --git a/src/types.hpp b/src/types.hpp
index c64407a..5465381 100644
--- a/src/types.hpp
+++ b/src/types.hpp
@@ -9,6 +9,7 @@
 #include <sdeventplus/clock.hpp>
 #include <sdeventplus/utility/timer.hpp>
 #include <string>
+#include <unordered_map>
 #include <unordered_set>
 #include <variant>
 
@@ -26,8 +27,6 @@
 // configuration takes 3-4 sec to reconfigure at most.
 constexpr auto refreshTimeout = 4s;
 
-using IntfName = std::string;
-
 using Addr_t = ifaddrs*;
 
 struct AddrDeleter
@@ -53,9 +52,17 @@
 // Byte representations for common address types in network byte order
 using InAddrAny = std::variant<struct in_addr, struct in6_addr>;
 
-using InterfaceList = std::unordered_set<IntfName>;
+using InterfaceList = std::unordered_set<std::string>;
 
 using Timer = sdeventplus::utility::Timer<sdeventplus::ClockId::Monotonic>;
 
+struct string_hash : public std::hash<std::string_view>
+{
+    using is_transparent = void;
+};
+template <typename V>
+using string_umap =
+    std::unordered_map<std::string, V, string_hash, std::equal_to<>>;
+
 } // namespace network
 } // namespace phosphor
