diff --git a/src/main/java/azgracompress/benchmark/SQBenchmark.java b/src/main/java/azgracompress/benchmark/SQBenchmark.java
index daeb51d696caa275c8944ab2f90b20a5573dce24..1fc7d82de080e2e5b93978fc09818cfd57f3497a 100644
--- a/src/main/java/azgracompress/benchmark/SQBenchmark.java
+++ b/src/main/java/azgracompress/benchmark/SQBenchmark.java
@@ -3,8 +3,8 @@ package azgracompress.benchmark;
 import azgracompress.U16;
 import azgracompress.cache.QuantizationCacheManager;
 import azgracompress.cli.ParsedCliOptions;
-import azgracompress.io.IPlaneLoader;
-import azgracompress.io.PlaneLoaderFactory;
+import azgracompress.io.loader.IPlaneLoader;
+import azgracompress.io.loader.PlaneLoaderFactory;
 import azgracompress.quantization.QTrainIteration;
 import azgracompress.quantization.scalar.LloydMaxU16ScalarQuantization;
 import azgracompress.quantization.scalar.SQCodebook;
diff --git a/src/main/java/azgracompress/benchmark/VQBenchmark.java b/src/main/java/azgracompress/benchmark/VQBenchmark.java
index e2c4a0ded026cdd677d7d589142c08125b55409d..c9095c4b4f51db17ac4550b4887e5d50911a69fb 100644
--- a/src/main/java/azgracompress/benchmark/VQBenchmark.java
+++ b/src/main/java/azgracompress/benchmark/VQBenchmark.java
@@ -4,8 +4,8 @@ import azgracompress.U16;
 import azgracompress.cache.QuantizationCacheManager;
 import azgracompress.cli.ParsedCliOptions;
 import azgracompress.data.*;
-import azgracompress.io.IPlaneLoader;
-import azgracompress.io.PlaneLoaderFactory;
+import azgracompress.io.loader.IPlaneLoader;
+import azgracompress.io.loader.PlaneLoaderFactory;
 import azgracompress.quantization.vector.LBGResult;
 import azgracompress.quantization.vector.LBGVectorQuantizer;
 import azgracompress.quantization.vector.VQCodebook;
diff --git a/src/main/java/azgracompress/cli/functions/MeasurePlaneErrorFunction.java b/src/main/java/azgracompress/cli/functions/MeasurePlaneErrorFunction.java
index d947fc0c987dca394cd7cf983ea0be946abfe46f..5ab882dc94b02762764e2435ccd0da0c3ddd856e 100644
--- a/src/main/java/azgracompress/cli/functions/MeasurePlaneErrorFunction.java
+++ b/src/main/java/azgracompress/cli/functions/MeasurePlaneErrorFunction.java
@@ -5,7 +5,7 @@ import azgracompress.io.InputDataInfo;
 import azgracompress.cli.ParsedCliOptions;
 import azgracompress.data.ImageU16;
 import azgracompress.data.V3i;
-import azgracompress.io.RawDataLoader;
+import azgracompress.io.loader.RawDataLoader;
 import azgracompress.utilities.Utils;
 
 import java.io.FileOutputStream;
diff --git a/src/main/java/azgracompress/compression/SQImageCompressor.java b/src/main/java/azgracompress/compression/SQImageCompressor.java
index 364536e2ef8f8ec53eb722894d052dbdfcc3cbd5..a1cda6314231c0bd00d4aa6df3b6e875ad536286 100644
--- a/src/main/java/azgracompress/compression/SQImageCompressor.java
+++ b/src/main/java/azgracompress/compression/SQImageCompressor.java
@@ -6,8 +6,8 @@ import azgracompress.io.InputDataInfo;
 import azgracompress.compression.exception.ImageCompressionException;
 import azgracompress.data.ImageU16;
 import azgracompress.huffman.Huffman;
-import azgracompress.io.IPlaneLoader;
-import azgracompress.io.PlaneLoaderFactory;
+import azgracompress.io.loader.IPlaneLoader;
+import azgracompress.io.loader.PlaneLoaderFactory;
 import azgracompress.quantization.scalar.LloydMaxU16ScalarQuantization;
 import azgracompress.quantization.scalar.SQCodebook;
 import azgracompress.quantization.scalar.ScalarQuantizer;
diff --git a/src/main/java/azgracompress/compression/VQImageCompressor.java b/src/main/java/azgracompress/compression/VQImageCompressor.java
index 54898144de8e16c3e174febf14e55f5f507f29ca..a64d23528bd1ac0087ff3ac5b1d2f3de71c513e1 100644
--- a/src/main/java/azgracompress/compression/VQImageCompressor.java
+++ b/src/main/java/azgracompress/compression/VQImageCompressor.java
@@ -6,8 +6,8 @@ import azgracompress.compression.exception.ImageCompressionException;
 import azgracompress.data.Chunk2D;
 import azgracompress.data.ImageU16;
 import azgracompress.huffman.Huffman;
-import azgracompress.io.IPlaneLoader;
-import azgracompress.io.PlaneLoaderFactory;
+import azgracompress.io.loader.IPlaneLoader;
+import azgracompress.io.loader.PlaneLoaderFactory;
 import azgracompress.quantization.vector.*;
 import azgracompress.utilities.Stopwatch;
 
diff --git a/src/main/java/azgracompress/io/IPlaneLoader.java b/src/main/java/azgracompress/io/loader/IPlaneLoader.java
similarity index 89%
rename from src/main/java/azgracompress/io/IPlaneLoader.java
rename to src/main/java/azgracompress/io/loader/IPlaneLoader.java
index 5e94af1948f34338780a59d995eb4894db839948..b629191af7641a4743ddf35e0ac3d0712d9b52c4 100644
--- a/src/main/java/azgracompress/io/IPlaneLoader.java
+++ b/src/main/java/azgracompress/io/loader/IPlaneLoader.java
@@ -1,4 +1,4 @@
-package azgracompress.io;
+package azgracompress.io.loader;
 
 import azgracompress.data.ImageU16;
 
diff --git a/src/main/java/azgracompress/io/PlaneLoaderFactory.java b/src/main/java/azgracompress/io/loader/PlaneLoaderFactory.java
similarity index 91%
rename from src/main/java/azgracompress/io/PlaneLoaderFactory.java
rename to src/main/java/azgracompress/io/loader/PlaneLoaderFactory.java
index 5690d6c11a3eefde70df22d2897332810d214af8..80a0bc241ac57901570b325f0cae52953b7de0c6 100644
--- a/src/main/java/azgracompress/io/PlaneLoaderFactory.java
+++ b/src/main/java/azgracompress/io/loader/PlaneLoaderFactory.java
@@ -1,4 +1,6 @@
-package azgracompress.io;
+package azgracompress.io.loader;
+
+import azgracompress.io.InputDataInfo;
 
 public final class PlaneLoaderFactory {
 
diff --git a/src/main/java/azgracompress/io/RawDataLoader.java b/src/main/java/azgracompress/io/loader/RawDataLoader.java
similarity index 98%
rename from src/main/java/azgracompress/io/RawDataLoader.java
rename to src/main/java/azgracompress/io/loader/RawDataLoader.java
index 38d244356a434903b0d977fde0f78c61e91fd4ec..0ba46e496e06878114bc832706e56253f7c54836 100644
--- a/src/main/java/azgracompress/io/RawDataLoader.java
+++ b/src/main/java/azgracompress/io/loader/RawDataLoader.java
@@ -1,7 +1,8 @@
-package azgracompress.io;
+package azgracompress.io.loader;
 
 import azgracompress.data.ImageU16;
 import azgracompress.data.V3i;
+import azgracompress.io.InputDataInfo;
 import azgracompress.utilities.TypeConverter;
 
 import java.io.*;
diff --git a/src/main/java/azgracompress/io/SCIFIOLoader.java b/src/main/java/azgracompress/io/loader/SCIFIOLoader.java
similarity index 98%
rename from src/main/java/azgracompress/io/SCIFIOLoader.java
rename to src/main/java/azgracompress/io/loader/SCIFIOLoader.java
index 9ff68dcd8c12f01f7c018d8c4afa68b32482e1b3..bfa9b6cdc315df84a8b11430e68cc53ee7e051e9 100644
--- a/src/main/java/azgracompress/io/SCIFIOLoader.java
+++ b/src/main/java/azgracompress/io/loader/SCIFIOLoader.java
@@ -1,8 +1,9 @@
-package azgracompress.io;
+package azgracompress.io.loader;
 
 import azgracompress.ScifioWrapper;
 import azgracompress.data.ImageU16;
 import azgracompress.data.V3i;
+import azgracompress.io.InputDataInfo;
 import azgracompress.utilities.TypeConverter;
 import io.scif.FormatException;
 import io.scif.Reader;