diff --git a/Makefile.am b/Makefile.am
index 288ac61..c626404 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-BUILT_SOURCES=fru-gen.hpp
+BUILT_SOURCES=fru-gen.cpp
 AM_DEFAULT_SOURCE_EXT = .cpp
 
 CLEANFILES=$(BUILT_SOURCES)
@@ -12,7 +12,7 @@
 
 libwritefrudatadir = ${libdir}
 libwritefrudata_LTLIBRARIES = libwritefrudata.la
-libwritefrudata_la_SOURCES = frup.cpp writefrudata.cpp
+libwritefrudata_la_SOURCES = frup.cpp fru-gen.cpp writefrudata.cpp
 libwritefrudata_la_LDFLAGS = $(SYSTEMD_LIBS) $(libmapper_LIBS) -version-info 1:0:0 -shared
 libwritefrudata_la_CXXFLAGS = $(SYSTEMD_CFLAGS) $(libmapper_CFLAGS)
 
@@ -22,5 +22,5 @@
 libstrgfnhandler_la_LDFLAGS = -version-info 1:0:0 -shared
 libstrgfnhandler_la_LIBADD = libwritefrudata.la
 
-fru-gen.hpp:
-	$(AM_V_GEN)@FRUGEN@ -o $(top_builddir) generate-hpp
+fru-gen.cpp:
+	$(AM_V_GEN)@FRUGEN@ -o $(top_builddir) generate-cpp
diff --git a/frup.hpp b/frup.hpp
index ca5fa96..ad342fc 100644
--- a/frup.hpp
+++ b/frup.hpp
@@ -3,7 +3,8 @@
 
 #include <systemd/sd-bus.h>
 #include <array>
-
+#include <string>
+#include <map>
 
 enum ipmi_fru_area_type
 {
@@ -74,6 +75,21 @@
 using IPMIFruInfo = std::array<std::pair<std::string,std::string>,
                            OPENBMC_VPD_KEY_MAX>;
 
+using IPMIFruMetadata = std::string;
+using IPMIFruMetadataValue = std::string;
+using IPMIFruMap = std::map<IPMIFruMetadata,IPMIFruMetadataValue>;
+
+using DbusProperty = std::string;
+using DbusPropertyMap = std::map<DbusProperty,IPMIFruMap>;
+
+using DbusInterface = std::string;
+using DbusInterfaceMap = std::map<DbusInterface,DbusPropertyMap>;
+
+using FruInstancePath = std::string;
+using FruInstanceMap = std::map<FruInstancePath,DbusInterfaceMap>;
+
+using FruId = uint32_t;
+using FruMap = std::map<FruId,FruInstanceMap>;
 
 /* Parse an IPMI write fru data message into a dictionary containing name value pair of VPD entries.*/
 int parse_fru (const void* msgbuf, sd_bus_message* vpdtbl);
diff --git a/scripts/fru_gen.py b/scripts/fru_gen.py
index aca86e8..2771498 100755
--- a/scripts/fru_gen.py
+++ b/scripts/fru_gen.py
@@ -7,7 +7,7 @@
 from mako.template import Template
 
 
-def generate_hpp(inventory_yaml, output_dir):
+def generate_cpp(inventory_yaml, output_dir):
     with open(os.path.join(script_dir, inventory_yaml), 'r') as f:
         ifile = yaml.safe_load(f)
         if not isinstance(ifile, dict):
@@ -17,9 +17,9 @@
 
         t = Template(filename=os.path.join(
                      script_dir,
-                     "writefru.mako.hpp"))
+                     "writefru.mako.cpp"))
 
-        output_hpp = os.path.join(output_dir, "fru-gen.hpp")
+        output_hpp = os.path.join(output_dir, "fru-gen.cpp")
         with open(output_hpp, 'w') as fd:
             fd.write(t.render(fruDict=ifile))
 
@@ -27,7 +27,7 @@
 def main():
 
     valid_commands = {
-        'generate-hpp': generate_hpp
+        'generate-cpp': generate_cpp
     }
     parser = argparse.ArgumentParser(
         description="IPMI FRU parser and code generator")
diff --git a/scripts/writefru.mako.cpp b/scripts/writefru.mako.cpp
new file mode 100644
index 0000000..7573862
--- /dev/null
+++ b/scripts/writefru.mako.cpp
@@ -0,0 +1,28 @@
+// !!! WARNING: This is a GENERATED Code..Please do NOT Edit !!!
+#include <iostream>
+#include "frup.hpp"
+
+extern const FruMap frus = {
+% for key in fruDict.iterkeys():
+   {${key},{
+<%
+    fru = fruDict[key]
+%>
+    % for object,interfaces in fru.iteritems():
+         {"${object}",{
+         % for interface,properties in interfaces.iteritems():
+             {"${interface}",{
+            % for dbus_property,property_value in properties.iteritems():
+                 {"${dbus_property}",{
+                % for name,value in property_value.iteritems():
+                     {"${name}","${value}"},
+                % endfor
+                 }},
+            % endfor
+             }},
+         % endfor
+        }},
+    % endfor
+   }},
+% endfor
+};
diff --git a/scripts/writefru.mako.hpp b/scripts/writefru.mako.hpp
deleted file mode 100644
index a5c2f24..0000000
--- a/scripts/writefru.mako.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// !!! WARNING: This is a GENERATED Code..Please do NOT Edit !!!
-#pragma once
-
-#include <iostream>
-
-#include <string>
-#include <list>
-#include <map>
-
-using IPMIFruMetadata = std::string;
-using IPMIFruMetadataValue = std::string;
-using IPMIFruMap = std::map<IPMIFruMetadata,IPMIFruMetadataValue>;
-
-using DbusProperty = std::string;
-using DbusPropertyMap = std::map<DbusProperty,IPMIFruMap>;
-
-using DbusInterface = std::string;
-using DbusInterfaceMap = std::map<DbusInterface,DbusPropertyMap>;
-
-using FruInstancePath = std::string;
-using FruInstanceMap = std::map<FruInstancePath,DbusInterfaceMap>;
-
-using FruId = uint32_t;
-using FruMap = std::map<FruId,FruInstanceMap>;
-
-
-const FruMap frus = {
-% for key in fruDict.iterkeys():
-   {${key},{
-<%
-    fru = fruDict[key]
-%>
-    % for object,interfaces in fru.iteritems():
-         {"${object}",{
-         % for interface,properties in interfaces.iteritems():
-             {"${interface}",{
-            % for dbus_property,property_value in properties.iteritems():
-                 {"${dbus_property}",{
-                % for name,value in property_value.iteritems():
-                     {"${name}","${value}"},
-                % endfor
-                 }},
-            % endfor
-             }},
-         % endfor
-        }},
-    % endfor
-   }},
-% endfor
-};
diff --git a/writefrudata.cpp b/writefrudata.cpp
index 00d5b5b..c5f2539 100644
--- a/writefrudata.cpp
+++ b/writefrudata.cpp
@@ -15,7 +15,6 @@
 #include <mapper.h>
 #include "frup.hpp"
 #include "fru-area.hpp"
-#include "fru-gen.hpp"
 #include <sdbusplus/server.hpp>
 
 // OpenBMC System Manager dbus framework
@@ -24,13 +23,19 @@
 
 extern const FruMap frus;
 
-// Association between interface and the dbus property
-using InterfaceList = std::map<std::string,
-                               std::map<std::string, std::string>>;
-
+using Property = std::string;
+using Value = sdbusplus::message::variant<bool, int64_t, std::string>;
 // Association between property and its value
-using PropertiesList = std::map<std::string, std::string>;
+using PropertyMap = std::map<Property, Value>;
 
+using Interface = std::string;
+// Association between interface and the dbus property
+using InterfaceMap = std::map<Interface, PropertyMap>;
+
+using Object = sdbusplus::message::object_path;
+
+// Association between object and the  interfaces.
+using ObjectMap = std::map<Object, InterfaceMap>;
 
 //----------------------------------------------------------------
 // Constructor
