diff --git a/include/sdbusplus/asio/object_server.hpp b/include/sdbusplus/asio/object_server.hpp
index d03c602..bbdc7a5 100644
--- a/include/sdbusplus/asio/object_server.hpp
+++ b/include/sdbusplus/asio/object_server.hpp
@@ -747,7 +747,7 @@
         initialized_ = true;
         vtable_.emplace_back(vtable::end());
 
-        interface_ = std::make_unique<sdbusplus::server::interface::interface>(
+        interface_ = std::make_unique<sdbusplus::server::interface_t>(
             static_cast<sdbusplus::bus_t&>(*conn_), path_.c_str(),
             name_.c_str(), static_cast<const sd_bus_vtable*>(&vtable_[0]),
             this);
@@ -802,7 +802,7 @@
     boost::container::flat_map<std::string, std::unique_ptr<callback>>
         callbacksMethod_;
     std::vector<sd_bus_vtable> vtable_;
-    std::unique_ptr<sdbusplus::server::interface::interface> interface_;
+    std::unique_ptr<sdbusplus::server::interface_t> interface_;
 
     bool initialized_ = false;
 };
@@ -856,7 +856,7 @@
     void add_manager(const std::string& path)
     {
         managers_.emplace_back(
-            std::make_unique<server::manager::manager>(server::manager::manager(
+            std::make_unique<server::manager_t>(server::manager_t(
                 static_cast<sdbusplus::bus_t&>(*conn_), path.c_str())));
     }
 
@@ -875,7 +875,7 @@
   private:
     std::shared_ptr<sdbusplus::asio::connection> conn_;
     std::vector<std::shared_ptr<dbus_interface>> interfaces_;
-    std::vector<std::unique_ptr<server::manager::manager>> managers_;
+    std::vector<std::unique_ptr<server::manager_t>> managers_;
 };
 
 } // namespace asio
diff --git a/test/server/object.cpp b/test/server/object.cpp
index abbb412..b6bd9a8 100644
--- a/test/server/object.cpp
+++ b/test/server/object.cpp
@@ -10,7 +10,7 @@
 using ::testing::StrEq;
 
 using TestInherit =
-    sdbusplus::server::object::object<sdbusplus::server::server::Test>;
+    sdbusplus::server::object_t<sdbusplus::server::server::Test>;
 
 class Object : public ::testing::Test
 {
@@ -25,7 +25,7 @@
 TEST_F(Object, InterfaceAddedOnly)
 {
     // Simulate the typical usage of a service
-    sdbusplus::server::manager::manager objManager(bus, objPath);
+    sdbusplus::server::manager_t objManager(bus, objPath);
     bus.request_name(busName);
 
     EXPECT_CALL(sdbusMock, sd_bus_emit_object_added(_, StrEq(objPath)))
@@ -49,7 +49,7 @@
 TEST_F(Object, DeferAddInterface)
 {
     // Simulate the typical usage of a service
-    sdbusplus::server::manager::manager objManager(bus, objPath);
+    sdbusplus::server::manager_t objManager(bus, objPath);
     bus.request_name(busName);
 
     EXPECT_CALL(sdbusMock, sd_bus_emit_object_added(_, StrEq(objPath)))
@@ -82,7 +82,7 @@
 TEST_F(Object, ObjectAdded)
 {
     // Simulate the typical usage of a service
-    sdbusplus::server::manager::manager objManager(bus, objPath);
+    sdbusplus::server::manager_t objManager(bus, objPath);
     bus.request_name(busName);
 
     EXPECT_CALL(sdbusMock, sd_bus_emit_object_added(_, StrEq(objPath)))
@@ -107,7 +107,7 @@
 TEST_F(Object, DoubleHasDefaultValues)
 {
     // Simulate the typical usage of a service
-    sdbusplus::server::manager::manager objManager(bus, objPath);
+    sdbusplus::server::manager_t objManager(bus, objPath);
     bus.request_name(busName);
 
     EXPECT_CALL(sdbusMock, sd_bus_emit_object_added(_, StrEq(objPath)))
diff --git a/tools/sdbusplus/templates/interface.server.hpp.mako b/tools/sdbusplus/templates/interface.server.hpp.mako
index f521895..92f5ab6 100644
--- a/tools/sdbusplus/templates/interface.server.hpp.mako
+++ b/tools/sdbusplus/templates/interface.server.hpp.mako
@@ -178,7 +178,7 @@
     % endfor
 
         static const vtable::vtable_t _vtable[];
-        sdbusplus::server::interface::interface
+        sdbusplus::server::interface_t
                 _${"_".join(interface.name.split('.'))}_interface;
         sdbusplus::SdBusInterface *_intf;
 
