diff --git a/vpd-manager/editor_impl.hpp b/vpd-manager/editor_impl.hpp
index 5beedba..3253332 100644
--- a/vpd-manager/editor_impl.hpp
+++ b/vpd-manager/editor_impl.hpp
@@ -3,9 +3,10 @@
 #include "const.hpp"
 #include "types.hpp"
 
+#include <nlohmann/json.hpp>
+
 #include <cstddef>
 #include <fstream>
-#include <nlohmann/json.hpp>
 #include <tuple>
 
 namespace openpower
@@ -26,9 +27,7 @@
     EditorImpl& operator=(const EditorImpl&) = delete;
     EditorImpl(EditorImpl&&) = delete;
     EditorImpl& operator=(EditorImpl&&) = delete;
-    ~EditorImpl()
-    {
-    }
+    ~EditorImpl() {}
 
     /** @brief Construct EditorImpl class
      *
@@ -40,8 +39,7 @@
                Binary&& vpd) :
         startOffset(0),
         thisRecord(record, kwd), vpdFile(std::move(vpd))
-    {
-    }
+    {}
 
     /** @brief Construct EditorImpl class
      *
@@ -57,8 +55,7 @@
         vpdFilePath(path),
         objPath(inventoryPath), startOffset(0), jsonFile(json),
         thisRecord(record, kwd)
-    {
-    }
+    {}
 
     /** @brief Construct EditorImpl class
      *
@@ -71,8 +68,7 @@
                const std::string& record, const std::string& kwd) :
         vpdFilePath(path),
         jsonFile(json), thisRecord(record, kwd)
-    {
-    }
+    {}
 
     /**
      * @brief Update data for keyword
@@ -208,8 +204,7 @@
         RecInfo(const std::string& rec, const std::string& kwd) :
             recName(rec), recKWd(kwd), recOffset(0), recECCoffset(0),
             recECCLength(0), kwdDataLength(0), recSize(0), kwDataOffset(0)
-        {
-        }
+        {}
     } thisRecord;
 
     Binary vpdFile;
@@ -221,4 +216,4 @@
 } // namespace editor
 } // namespace manager
 } // namespace vpd
-} // namespace openpower
\ No newline at end of file
+} // namespace openpower
