diff --git a/chassis_state_manager.cpp b/chassis_state_manager.cpp
index 03dd176..a723d8f 100644
--- a/chassis_state_manager.cpp
+++ b/chassis_state_manager.cpp
@@ -9,9 +9,6 @@
 #include "config.h"
 #include <experimental/filesystem>
 
-// Register class version with Cereal
-CEREAL_CLASS_VERSION(phosphor::state::manager::Chassis, CLASS_VERSION);
-
 namespace phosphor
 {
 namespace state
@@ -269,7 +266,7 @@
     if (value != pOHCounter())
     {
         ChassisInherit::pOHCounter(value);
-        serialize();
+        serializePOH();
     }
     return pOHCounter();
 }
@@ -277,7 +274,7 @@
 void Chassis::restorePOHCounter()
 {
     uint32_t counter;
-    if (!deserialize(POH_COUNTER_PERSIST_PATH, counter))
+    if (!deserializePOH(POH_COUNTER_PERSIST_PATH, counter))
     {
         // set to default value
         pOHCounter(0);
@@ -288,7 +285,7 @@
     }
 }
 
-fs::path Chassis::serialize(const fs::path& path)
+fs::path Chassis::serializePOH(const fs::path& path)
 {
     std::ofstream os(path.c_str(), std::ios::binary);
     cereal::JSONOutputArchive oarchive(os);
@@ -296,7 +293,7 @@
     return path;
 }
 
-bool Chassis::deserialize(const fs::path& path, uint32_t& pOHCounter)
+bool Chassis::deserializePOH(const fs::path& path, uint32_t& pOHCounter)
 {
     try
     {
