diff --git a/const.hpp b/const.hpp
new file mode 100644
index 0000000..b62621c
--- /dev/null
+++ b/const.hpp
@@ -0,0 +1,85 @@
+#pragma once
+
+#include <iostream>
+
+namespace openpower
+{
+namespace vpd
+{
+namespace constants
+{
+
+using RecordId = uint8_t;
+using RecordOffset = uint16_t;
+using RecordSize = uint16_t;
+using RecordType = uint16_t;
+using RecordLength = uint16_t;
+using KwSize = uint8_t;
+using PoundKwSize = uint16_t;
+using ECCOffset = uint16_t;
+using ECCLength = uint16_t;
+using LE2ByteData = uint16_t;
+
+static constexpr auto MAC_ADDRESS_LEN_BYTES = 6;
+static constexpr auto LAST_KW = "PF";
+static constexpr auto POUND_KW = '#';
+static constexpr auto UUID_LEN_BYTES = 16;
+static constexpr auto UUID_TIME_LOW_END = 8;
+static constexpr auto UUID_TIME_MID_END = 13;
+static constexpr auto UUID_TIME_HIGH_END = 18;
+static constexpr auto UUID_CLK_SEQ_END = 23;
+
+static constexpr auto MB_RESULT_LEN = 19;
+static constexpr auto MB_LEN_BYTES = 8;
+static constexpr auto MB_YEAR_END = 4;
+static constexpr auto MB_MONTH_END = 7;
+static constexpr auto MB_DAY_END = 10;
+static constexpr auto MB_HOUR_END = 13;
+static constexpr auto MB_MIN_END = 16;
+
+constexpr int IPZ_DATA_START = 11;
+constexpr uint8_t KW_VAL_PAIR_START_TAG = 0x84;
+constexpr uint8_t RECORD_END_TAG = 0x78;
+
+const std::string service = "xyz.openbmc_project.Inventory.Manager";
+const std::string VPD_OBJ_PATH_PREFIX = "/xyz/openbmc_project/inventory";
+
+namespace lengths
+{
+enum Lengths
+{
+    RECORD_NAME = 4,
+    KW_NAME = 2,
+    RECORD_OFFSET = 2,
+    RECORD_MIN = 44,
+    RECORD_LENGTH = 2,
+    RECORD_ECC_OFFSET = 2,
+    VHDR_ECC_LENGTH = 11,
+    VHDR_RECORD_LENGTH = 44
+}; // enum Lengths
+} // namespace lengths
+
+namespace offsets
+{
+enum Offsets
+{
+    VHDR = 17,
+    VHDR_TOC_ENTRY = 29,
+    VTOC_PTR = 35,
+    VTOC_DATA = 13,
+    VHDR_ECC = 0,
+    VHDR_RECORD = 11
+};
+} // namespace offsets
+
+namespace eccStatus
+{
+enum Status
+{
+    SUCCESS = 0,
+    FAILED = -1
+};
+} // namespace eccStatus
+} // namespace constants
+} // namespace vpd
+} // namespace openpower
diff --git a/impl.cpp b/impl.cpp
index f4d1e42..d647d8b 100644
--- a/impl.cpp
+++ b/impl.cpp
@@ -1,5 +1,6 @@
 #include "impl.hpp"
 
+#include "const.hpp"
 #include "defines.hpp"
 #include "utils.hpp"
 
@@ -20,27 +21,11 @@
 {
 namespace parser
 {
+using namespace openpower::vpd::constants;
 
 static const std::unordered_map<std::string, Record> supportedRecords = {
     {"VINI", Record::VINI}, {"OPFR", Record::OPFR}, {"OSYS", Record::OSYS}};
 
-static constexpr auto MAC_ADDRESS_LEN_BYTES = 6;
-static constexpr auto LAST_KW = "PF";
-static constexpr auto POUND_KW = '#';
-static constexpr auto UUID_LEN_BYTES = 16;
-static constexpr auto UUID_TIME_LOW_END = 8;
-static constexpr auto UUID_TIME_MID_END = 13;
-static constexpr auto UUID_TIME_HIGH_END = 18;
-static constexpr auto UUID_CLK_SEQ_END = 23;
-
-static constexpr auto MB_RESULT_LEN = 19;
-static constexpr auto MB_LEN_BYTES = 8;
-static constexpr auto MB_YEAR_END = 4;
-static constexpr auto MB_MONTH_END = 7;
-static constexpr auto MB_DAY_END = 10;
-static constexpr auto MB_HOUR_END = 13;
-static constexpr auto MB_MIN_END = 16;
-
 static const std::unordered_map<std::string, internal::KeywordInfo>
     supportedKeywords = {
         {"DR", std::make_tuple(record::Keyword::DR, keyword::Encoding::ASCII)},
@@ -57,43 +42,6 @@
         {"VS", std::make_tuple(record::Keyword::VS, keyword::Encoding::ASCII)},
 };
 
-namespace offsets
-{
-
-enum Offsets
-{
-    VHDR = 17,
-    VHDR_TOC_ENTRY = 29,
-    VTOC_PTR = 35,
-    VTOC_DATA = 13,
-    VHDR_ECC = 0,
-    VHDR_RECORD = 11
-};
-}
-
-namespace lengths
-{
-
-enum Lengths
-{
-    RECORD_NAME = 4,
-    KW_NAME = 2,
-    RECORD_MIN = 44,
-    VTOC_RECORD_LENGTH = 14,
-    VHDR_ECC_LENGTH = 11,
-    VHDR_RECORD_LENGTH = 44,
-};
-}
-
-namespace eccStatus
-{
-enum Status
-{
-    SUCCESS = 0,
-    FAILED = -1,
-};
-}
-
 namespace
 {
 constexpr auto toHex(size_t c)
diff --git a/impl.hpp b/impl.hpp
index 8d3b59e..a6ac39d 100644
--- a/impl.hpp
+++ b/impl.hpp
@@ -1,5 +1,6 @@
 #pragma once
 
+#include "const.hpp"
 #include "store.hpp"
 
 #include <cstddef>
@@ -12,7 +13,6 @@
 {
 namespace keyword
 {
-
 /** @brief Encoding scheme of a VPD keyword's data */
 enum class Encoding
 {
@@ -35,22 +35,6 @@
 
 } // namespace internal
 
-namespace
-{
-
-using RecordId = uint8_t;
-using RecordOffset = uint16_t;
-using RecordSize = uint16_t;
-using RecordType = uint16_t;
-using RecordLength = uint16_t;
-using KwSize = uint8_t;
-using PoundKwSize = uint16_t;
-using ECCOffset = uint16_t;
-using ECCLength = uint16_t;
-using LE2ByteData = uint16_t;
-
-} // namespace
-
 /** @class Impl
  *  @brief Implements parser for VPD
  *
@@ -165,7 +149,7 @@
     /** @brief This interface collects Offset of VTOC
      *  @returns VTOC Offset
      */
-    RecordOffset getVtocOffset() const;
+    openpower::vpd::constants::RecordOffset getVtocOffset() const;
 
     /** @brief VPD in binary format */
     Binary vpd;
diff --git a/vpd-manager/manager.cpp b/vpd-manager/manager.cpp
index bd3af72..ce8bea5 100644
--- a/vpd-manager/manager.cpp
+++ b/vpd-manager/manager.cpp
@@ -2,6 +2,7 @@
 
 #include "manager.hpp"
 
+#include "const.hpp"
 #include "parser.hpp"
 
 #include <exception>
diff --git a/vpd-manager/meson.build b/vpd-manager/meson.build
index 0b655fd..7393379 100644
--- a/vpd-manager/meson.build
+++ b/vpd-manager/meson.build
@@ -25,7 +25,8 @@
                         'manager_main.cpp',
                         'manager.cpp',
                         'server.cpp',
-                        'error.cpp'
+                        'error.cpp',
+                        '../impl.cpp'
                         ]
 
 vpd_manager_exe = executable('vpd-manager',
