diff --git a/manager.cpp b/manager.cpp
index 0d25877..7b5791a 100644
--- a/manager.cpp
+++ b/manager.cpp
@@ -2,6 +2,7 @@
 #include <string>
 #include <algorithm>
 #include <phosphor-logging/log.hpp>
+#include <xyz/openbmc_project/Led/Physical/server.hpp>
 #include "manager.hpp"
 namespace phosphor
 {
@@ -141,21 +142,24 @@
 }
 
 /** @brief Returns action string based on enum */
-const char* const Manager::getPhysicalAction(Layout::Action action)
+std::string Manager::getPhysicalAction(Layout::Action action)
 {
-    // TODO : When this is moved over to using libdus interfaces, this code will
-    // away. https://github.com/openbmc/phosphor-led-manager/issues/2
+    namespace server = sdbusplus::xyz::openbmc_project::Led::server;
+
+    // TODO: openbmc/phosphor-led-manager#5
+    //    Somehow need to use the generated Action enum than giving one
+    //    in ledlayout.
     if(action == Layout::Action::On)
     {
-        return "xyz.openbmc_project.Led.Physical.Action.On";
+        return server::convertForMessage(server::Physical::Action::On);
     }
     else if(action == Layout::Action::Blink)
     {
-        return "xyz.openbmc_project.Led.Physical.Action.Blink";
+        return server::convertForMessage(server::Physical::Action::Blink);
     }
     else
     {
-        return "xyz.openbmc_project.Led.Physical.Action.Off";
+        return server::convertForMessage(server::Physical::Action::Off);
     }
 }
 
diff --git a/manager.hpp b/manager.hpp
index 8dbbcd6..4adb229 100644
--- a/manager.hpp
+++ b/manager.hpp
@@ -97,7 +97,7 @@
          *
          *  @return string equivalent of the passed in enumeration
          */
-        static const char* const getPhysicalAction(Layout::Action action);
+        static std::string getPhysicalAction(Layout::Action action);
 
         /** @brief Chooses appropriate action to be triggered on physical LED
          *  and calls into function that applies the actual action.
diff --git a/test/Makefile.am b/test/Makefile.am
index 6efd2c7..0bf5215 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -7,6 +7,6 @@
 check_PROGRAMS = utest
 utest_CPPFLAGS = -Igtest $(GTEST_CPPFLAGS) $(AM_CPPFLAGS) $(PHOSPHOR_LOGGING_CFLAGS)
 utest_CXXFLAGS = $(PTHREAD_CFLAGS)
-utest_LDFLAGS = -lgtest_main -lgtest $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS) $(SYSTEMD_LIBS) $(PHOSPHOR_LOGGING_LIBS)
+utest_LDFLAGS = -lgtest_main -lgtest $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS) $(SYSTEMD_LIBS) $(PHOSPHOR_LOGGING_LIBS) $(PHOSPHOR_DBUS_INTERFACES_LIBS)
 utest_SOURCES = utest.cpp
 utest_LDADD = $(top_builddir)/manager.o
