diff --git a/include/manager.hpp b/include/manager.hpp
index 2b79ca9..41977ca 100644
--- a/include/manager.hpp
+++ b/include/manager.hpp
@@ -49,6 +49,14 @@
             std::vector<std::tuple<
                 BoundType, std::variant<int64_t, std::string>, std::string>>>>;
 
+    using oldBaseTable = std::map<
+        std::string,
+        std::tuple<AttributeType, bool, std::string, std::string, std::string,
+                   std::variant<int64_t, std::string>,
+                   std::variant<int64_t, std::string>,
+                   std::vector<std::tuple<
+                       BoundType, std::variant<int64_t, std::string>>>>>;
+
     using ResetFlag = std::map<std::string, ResetFlag>;
 
     using PendingAttributes =
@@ -124,6 +132,28 @@
      */
     PendingAttributes pendingAttributes(PendingAttributes value) override;
 
+    /** @brief Convert the previosuly supported Base BIOS table to newly
+     * supported Base BIOS table
+     *
+     *  @param[in] biosTbl - Old Base BIOS table (without VDN)
+     *  @param[in] baseTable - Recently supported Base BIOS table (with VDN)
+     *
+     *  @return void
+     *
+     */
+    void convertBiosDataToVersion1(Manager::oldBaseTable biosTbl,
+                                   Manager::BaseTable& baseTable);
+
+    /** @brief Convert the VDN supported Base BIOS table to old Base BIOS table
+     *
+     *  @param[in] biosTbl - Old Base BIOS table (without VDN)
+     *  @param[in] baseTable - Recently supported Base BIOS table (with VDN)
+     *
+     *  @return void
+     */
+    void convertBiosDataToVersion0(Manager::oldBaseTable& baseTable,
+                                   Manager::BaseTable& biosTbl);
+
   private:
     /** @enum Index into the fields in the BaseBIOSTable
      */
