diff --git a/vpd-manager/editor_impl.cpp b/vpd-manager/editor_impl.cpp
index c9e9847..70eb453 100644
--- a/vpd-manager/editor_impl.cpp
+++ b/vpd-manager/editor_impl.cpp
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "editor_impl.hpp"
 
 #include "parser.hpp"
@@ -253,8 +255,9 @@
                               const std::variant<T>& data)
 {
     auto bus = sdbusplus::bus::new_default();
-    auto properties = bus.new_method_call(
-        service, object.c_str(), "org.freedesktop.DBus.Properties", "Set");
+    auto properties =
+        bus.new_method_call(INVENTORY_MANAGER_SERVICE, object.c_str(),
+                            "org.freedesktop.DBus.Properties", "Set");
     properties.append(interface);
     properties.append(property);
     properties.append(data);
@@ -284,9 +287,9 @@
                     std::string kwdData(thisRecord.kwdUpdatedData.begin(),
                                         thisRecord.kwdUpdatedData.end());
 
-                    makeDbusCall<std::string>(
-                        (VPD_OBJ_PATH_PREFIX + objectPath),
-                        commonInterface.key(), ciPropertyList.key(), kwdData);
+                    makeDbusCall<std::string>((INVENTORY_PATH + objectPath),
+                                              commonInterface.key(),
+                                              ciPropertyList.key(), kwdData);
                 }
             }
         }
@@ -313,8 +316,8 @@
                         std::string kwdData(thisRecord.kwdUpdatedData.begin(),
                                             thisRecord.kwdUpdatedData.end());
                         makeDbusCall<std::string>(
-                            (VPD_OBJ_PATH_PREFIX + objPath),
-                            extraInterface.key(), eiPropertyList.key(),
+                            (INVENTORY_PATH + objPath), extraInterface.key(),
+                            eiPropertyList.key(),
                             encodeKeyword(kwdData, eiPropertyList.value().value(
                                                        "encoding", "")));
                     }
@@ -344,9 +347,9 @@
         {
             // update com interface
             makeDbusCall<Binary>(
-                (VPD_OBJ_PATH_PREFIX +
+                (INVENTORY_PATH +
                  singleInventory["inventoryPath"].get<std::string>()),
-                (COM_INTERFACE_PREFIX + (std::string) "." + thisRecord.recName),
+                (IPZ_INTERFACE + (std::string) "." + thisRecord.recName),
                 thisRecord.recKWd, thisRecord.kwdUpdatedData);
 
             // process Common interface
diff --git a/vpd-manager/meson.build b/vpd-manager/meson.build
index da736d7..44b34aa 100644
--- a/vpd-manager/meson.build
+++ b/vpd-manager/meson.build
@@ -1,25 +1,6 @@
-project('vpd-manager',
-        'cpp',
-        'c',
-        default_options : ['cpp_std=c++17'],
-        version : '1.0')
-sdbusplus = dependency('sdbusplus')
-phosphor_logging = dependency('phosphor-logging')
 systemd = dependency('libsystemd', version : '>= 221')
 phosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
 
-compiler = meson.get_compiler('cpp')
-compiler.has_header('nlohmann/json.hpp')
-
-configure_file( output: 'config.h',
-                        configuration: {
-                        'BUSNAME' : '"' + get_option('BUSNAME') + '"',
-                        'OBJPATH' : '"' + get_option('OBJPATH') + '"',
-                        'IFACE' : '"' + get_option('IFACE') + '"',
-                        'INVENTORY_JSON' : '"' + get_option('INVENTORY_JSON') + '"'
-                        }
-                )
-
 configuration_inc = include_directories('.', '../')
 
 vpd_manager_SOURCES =[
@@ -31,16 +12,20 @@
                         '../impl.cpp',
                         '../parser.cpp',
                         '../utils.cpp',
-                        '../vpdecc/vpdecc.c'
+                        '../vpdecc/vpdecc.c',
+                        '../vpdecc/vpdecc_support.c'
                         ]
 
+vpd_manager_dependencies =[sdbusplus,
+                           phosphor_logging,
+                           systemd,
+                           phosphor_dbus_interfaces,
+                          ]
+
 vpd_manager_exe = executable('vpd-manager',
-                                 vpd_manager_SOURCES,
-                                 include_directories : configuration_inc,
-                                 dependencies :[
-                                                 sdbusplus,
-                                                 phosphor_logging,
-                                                 systemd,
-                                                 phosphor_dbus_interfaces,
-                                             ],
-                              )
+                              vpd_manager_SOURCES,
+                              include_directories : configuration_inc,
+                              dependencies :[vpd_manager_dependencies,
+                                            ],
+                              install: true
+                            )
