diff --git a/BinaryObjectScanner.Interfaces/IExtractable.cs b/BinaryObjectScanner.Interfaces/IExtractable.cs
new file mode 100644
index 00000000..c038f967
--- /dev/null
+++ b/BinaryObjectScanner.Interfaces/IExtractable.cs
@@ -0,0 +1,26 @@
+using System.IO;
+
+namespace BinaryObjectScanner.Interfaces
+{
+ ///
+ /// Mark a file type as being able to be extracted
+ ///
+ public interface IExtractable
+ {
+ ///
+ /// Scan a file for all internal protections
+ ///
+ /// Path to the input file
+ /// Path to extracted files, null on error
+ /// Ideally, this should just point to the other extract implementation
+ string Extract(string file);
+
+ ///
+ /// Scan a stream for all internal protections
+ ///
+ /// Stream representing the input file
+ /// Path to the input file
+ /// Path to extracted files, null on error
+ string Extract(Stream stream, string file);
+ }
+}