diff --git a/.vscode/settings.json b/.vscode/settings.json
index 49d0ad7..346a0ab 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -119,6 +119,8 @@
         "complex": "cpp",
         "regex": "cpp",
         "typeindex": "cpp",
-        "valarray": "cpp"
+        "valarray": "cpp",
+        "charconv": "cpp",
+        "compare": "cpp"
     }
 }
\ No newline at end of file
diff --git a/Information/InfoDirFile.hpp b/Information/InfoDirFile.hpp
index 7fdbbad..7ec03ea 100644
--- a/Information/InfoDirFile.hpp
+++ b/Information/InfoDirFile.hpp
@@ -4,8 +4,10 @@
 #include <cereal/archives/binary.hpp>
 #include <cereal/types/memory.hpp>
 #include <cereal/types/unordered_map.hpp>
+#include <cereal/types/vector.hpp> 
 #include <cstdint>
 #include <string>
+#include <vector>
 #include <wx/wx.h>
 
 enum FileType : uint32_t {
@@ -16,16 +18,28 @@ enum FileType : uint32_t {
 };
 
 struct DirFileInfo {
-    FileType type;
+    FileType type = None;
     std::string fullPath;
     std::string name;
-    uint64_t lastModifyTime;
-    uint64_t size;
-    uint16_t permission;
+    uint64_t lastModifyTime = 0;
+    uint64_t size = 0;
+    uint16_t permission = 0;
+    
+    DirFileInfo() = default;
 
     template <class Archive> void serialize(Archive& archive)
     {
-        archive(type, fullPath, name, lastModifyTime, size, permission);
+        archive(CEREAL_NVP(type), CEREAL_NVP(fullPath), CEREAL_NVP(name), CEREAL_NVP(lastModifyTime), CEREAL_NVP(size),
+                CEREAL_NVP(permission));
+    }
+};
+
+struct DirFileInfoVec {
+    std::vector<DirFileInfo> vec;
+
+    template <class Archive> void serialize(Archive& archive)
+    {
+        archive(CEREAL_NVP(vec));
     }
 };
 
diff --git a/Test/main.cxx b/Test/main.cxx
index 3911e27..84f7be7 100644
--- a/Test/main.cxx
+++ b/Test/main.cxx
@@ -1,7 +1,7 @@
 #include <InfoDirFile.hpp>
 #include <iostream>
 
-int main()
+void test1()
 {
     DirFileInfo info;
     DirFileInfo info2;
@@ -33,6 +33,38 @@ int main()
         cereal::BinaryInputArchive inputArchive(inputSs);
         inputArchive(info2);
     }
+}
 
+void test2()
+{
+    DirFileInfoVec v;
+    DirFileInfoVec v2;
+    DirFileInfo d1;
+    d1.fullPath = "Java";
+    DirFileInfo d2;
+    d2.fullPath = "CPP";
+    v.vec.push_back(d1);
+    v.vec.push_back(d2);
+
+    std::stringstream ss;
+
+    {
+        cereal::BinaryOutputArchive archive(ss);
+        archive(v);
+    }
+
+    std::string ret = ss.str();
+    std::cout << "Serialized size: " << ret.size() << " bytes\n";
+
+    {
+        std::stringstream inputSs(ret);
+        cereal::BinaryInputArchive inputArchive(inputSs);
+        inputArchive(v2);
+    }
+}
+
+int main()
+{
+    test2();
     return 0;
 }
\ No newline at end of file