diff --git a/ibm_vpd_app.cpp b/ibm_vpd_app.cpp
index b5ca5fd..7eddeba 100644
--- a/ibm_vpd_app.cpp
+++ b/ibm_vpd_app.cpp
@@ -994,6 +994,13 @@
 
         try
         {
+            // check if vpd file is empty
+            if (file.empty())
+            {
+                throw(VpdDataException(
+                    "VPD file is empty. Can't process with blank file."));
+            }
+
             Binary vpdVector = getVpdDataInVector(js, file);
             ParserInterface* parser = ParserFactory::getParser(move(vpdVector));
 
@@ -1053,4 +1060,4 @@
     }
 
     return rc;
-}
+}
\ No newline at end of file
diff --git a/vpd-parser/keyword_vpd_parser.cpp b/vpd-parser/keyword_vpd_parser.cpp
index 3d204f4..1d100a8 100644
--- a/vpd-parser/keyword_vpd_parser.cpp
+++ b/vpd-parser/keyword_vpd_parser.cpp
@@ -21,10 +21,6 @@
 variant<KeywordVpdMap, store> KeywordVpdParser::parse()
 {
     int kwVpdType;
-    if (keywordVpdVector.empty())
-    {
-        throw std::runtime_error("Blank Vpd Data");
-    }
 
     validateLargeResourceIdentifierString();
 
diff --git a/vpd-parser/memory_vpd_parser.cpp b/vpd-parser/memory_vpd_parser.cpp
index 6a4c608..3793ae0 100644
--- a/vpd-parser/memory_vpd_parser.cpp
+++ b/vpd-parser/memory_vpd_parser.cpp
@@ -21,13 +21,13 @@
 {
     KeywordVpdMap map{};
 
-    vector<uint8_t> partNumber(iterator, iterator + PART_NUM_LEN);
+    Binary partNumber(iterator, iterator + PART_NUM_LEN);
 
     advance(iterator, PART_NUM_LEN);
-    vector<uint8_t> serialNumber(iterator, iterator + SERIAL_NUM_LEN);
+    Binary serialNumber(iterator, iterator + SERIAL_NUM_LEN);
 
     advance(iterator, SERIAL_NUM_LEN);
-    vector<uint8_t> ccin(iterator, iterator + CCIN_LEN);
+    Binary ccin(iterator, iterator + CCIN_LEN);
 
     map.emplace("PN", move(partNumber));
     map.emplace("SN", move(serialNumber));
@@ -38,12 +38,6 @@
 
 variant<kwdVpdMap, Store> memoryVpdParser::parse()
 {
-    // check if vpd file is empty
-    if (memVpd.empty())
-    {
-        throw runtime_error("VPD file is empty.");
-    }
-
     // Read the data and return the map
     auto iterator = memVpd.cbegin();
     // point the iterator to DIMM data and skip "11S"
diff --git a/vpd-parser/memory_vpd_parser.hpp b/vpd-parser/memory_vpd_parser.hpp
index 3d47144..1b7c9e6 100644
--- a/vpd-parser/memory_vpd_parser.hpp
+++ b/vpd-parser/memory_vpd_parser.hpp
@@ -28,7 +28,7 @@
     /**
      * @brief Constructor
      *
-     * Move kwVpdVector to parser object's kwVpdVector
+     * Move memVpdVector to parser object's memVpdVector
      */
     memoryVpdParser(Binary&& VpdVector) : memVpd(std::move(VpdVector))
     {
