diff --git a/src/post_code.cpp b/src/post_code.cpp
index 6186f97..8ab2e32 100644
--- a/src/post_code.cpp
+++ b/src/post_code.cpp
@@ -15,6 +15,13 @@
 */
 #include "post_code.hpp"
 
+#include <cereal/access.hpp>
+#include <cereal/archives/binary.hpp>
+#include <cereal/cereal.hpp>
+#include <cereal/types/map.hpp>
+#include <cereal/types/tuple.hpp>
+#include <cereal/types/vector.hpp>
+
 #include <iomanip>
 
 void PostCode::deleteAll()
@@ -124,16 +131,16 @@
     try
     {
         std::ofstream osIdx(path / CurrentBootCycleIndexName, std::ios::binary);
-        cereal::JSONOutputArchive idxArchive(osIdx);
+        cereal::BinaryOutputArchive idxArchive(osIdx);
         idxArchive(currentBootCycleIndex);
 
         uint16_t count = currentBootCycleCount();
         std::ofstream osCnt(path / CurrentBootCycleCountName, std::ios::binary);
-        cereal::JSONOutputArchive cntArchive(osCnt);
+        cereal::BinaryOutputArchive cntArchive(osCnt);
         cntArchive(count);
 
         std::ofstream osPostCodes(path / std::to_string(currentBootCycleIndex));
-        cereal::JSONOutputArchive oarchivePostCodes(osPostCodes);
+        cereal::BinaryOutputArchive oarchivePostCodes(osPostCodes);
         oarchivePostCodes(postCodes);
     }
     catch (const cereal::Exception& e)
@@ -156,7 +163,7 @@
         if (fs::exists(path))
         {
             std::ifstream is(path, std::ios::in | std::ios::binary);
-            cereal::JSONInputArchive iarchive(is);
+            cereal::BinaryInputArchive iarchive(is);
             iarchive(index);
             return true;
         }
@@ -183,7 +190,7 @@
         if (fs::exists(path))
         {
             std::ifstream is(path, std::ios::in | std::ios::binary);
-            cereal::JSONInputArchive iarchive(is);
+            cereal::BinaryInputArchive iarchive(is);
             iarchive(codes);
             return true;
         }
