diff --git a/src/manager_serialize.cpp b/src/manager_serialize.cpp
index 473aa14..806b138 100644
--- a/src/manager_serialize.cpp
+++ b/src/manager_serialize.cpp
@@ -10,10 +10,28 @@
 #include <phosphor-logging/lg2.hpp>
 
 #include <fstream>
+#include <map>
+#include <variant>
+#include <vector>
 
+CEREAL_CLASS_VERSION(bios_config::Manager, 1);
 namespace bios_config
 {
 
+inline void convertBiosData(Manager& entry, Manager::BaseTable& baseTable,
+                            Manager::oldBaseTable& baseTbl)
+{
+    switch (cereal::detail::Version<Manager>::version)
+    {
+        case 0:
+            entry.convertBiosDataToVersion0(baseTbl, baseTable);
+            break;
+        case 1:
+            entry.convertBiosDataToVersion1(baseTbl, baseTable);
+            break;
+    }
+}
+
 /** @brief Function required by Cereal to perform serialization.
  *
  *  @tparam Archive - Cereal archive type (binary in this case).
@@ -23,9 +41,9 @@
  *                       across code levels
  */
 template <class Archive>
-void save(Archive& archive, const Manager& entry,
-          const std::uint32_t /*version*/)
+void save(Archive& archive, const Manager& entry, const std::uint32_t version)
 {
+    lg2::error("Save is called with version {VER}", "VER", version);
     archive(entry.sdbusplus::xyz::openbmc_project::BIOSConfig::server::Manager::
                 baseBIOSTable(),
             entry.sdbusplus::xyz::openbmc_project::BIOSConfig::server::Manager::
@@ -41,14 +59,36 @@
  *                       across code levels
  */
 template <class Archive>
-void load(Archive& archive, Manager& entry, const std::uint32_t /*version*/)
+void load(Archive& archive, Manager& entry, const std::uint32_t version)
 {
+    lg2::error("Load is called with version {VER}", "VER", version);
+
     Manager::BaseTable baseTable;
+    Manager::oldBaseTable baseTbl;
     Manager::PendingAttributes pendingAttrs;
 
-    archive(baseTable, pendingAttrs);
+    auto currentVersion = cereal::detail::Version<Manager>::version;
+
+    switch (version)
+    {
+        case 0:
+            archive(baseTbl, pendingAttrs);
+            break;
+        case 1:
+            archive(baseTable, pendingAttrs);
+            break;
+    }
+
+    if (currentVersion != version)
+    {
+        lg2::error("Version Mismatch with saved data 1");
+        convertBiosData(entry, baseTable, baseTbl);
+    }
+
+    // Update Dbus
     entry.sdbusplus::xyz::openbmc_project::BIOSConfig::server::Manager::
         baseBIOSTable(baseTable, true);
+
     entry.sdbusplus::xyz::openbmc_project::BIOSConfig::server::Manager::
         pendingAttributes(pendingAttrs, true);
 }
