diff --git a/BurnOutSharp.Models/BFPK/Archive.cs b/BurnOutSharp.Models/BFPK/Archive.cs
new file mode 100644
index 00000000..754511f0
--- /dev/null
+++ b/BurnOutSharp.Models/BFPK/Archive.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace BurnOutSharp.Models.BFPK
+{
+ ///
+ /// BFPK custom archive format
+ ///
+ ///
+ public class Archive
+ {
+ ///
+ /// Header
+ ///
+ public Header Header { get; set; }
+
+ ///
+ /// Files
+ ///
+ public FileEntry[] Files { get; set; }
+ }
+}
diff --git a/BurnOutSharp.Models/BFPK/FileEntry.cs b/BurnOutSharp.Models/BFPK/FileEntry.cs
new file mode 100644
index 00000000..dce3a797
--- /dev/null
+++ b/BurnOutSharp.Models/BFPK/FileEntry.cs
@@ -0,0 +1,34 @@
+namespace BurnOutSharp.Models.BFPK
+{
+ ///
+ /// File entry
+ ///
+ ///
+ public class FileEntry
+ {
+ ///
+ /// Name size
+ ///
+ public int NameSize;
+
+ ///
+ /// Name
+ ///
+ public string Name;
+
+ ///
+ /// Uncompressed size
+ ///
+ public int UncompressedSize;
+
+ ///
+ /// Offset
+ ///
+ public int Offset;
+
+ ///
+ /// Compressed size
+ ///
+ public int CompressedSize;
+ }
+}
diff --git a/BurnOutSharp.Models/BFPK/Header.cs b/BurnOutSharp.Models/BFPK/Header.cs
new file mode 100644
index 00000000..17fd5ae4
--- /dev/null
+++ b/BurnOutSharp.Models/BFPK/Header.cs
@@ -0,0 +1,27 @@
+using System.Runtime.InteropServices;
+
+namespace BurnOutSharp.Models.BFPK
+{
+ ///
+ /// Header
+ ///
+ ///
+ [StructLayout(LayoutKind.Sequential)]
+ public class Header
+ {
+ ///
+ /// "BFPK"
+ ///
+ public uint Magic;
+
+ ///
+ /// Version
+ ///
+ public int Version;
+
+ ///
+ /// Files
+ ///
+ public int Files;
+ }
+}