diff --git a/src/main/java/cz/it4i/qcmp/DataCompressor.java b/src/main/java/cz/it4i/qcmp/DataCompressor.java
index fa30b58a88c2804d6319e062401ceb87c8d0f882..0c0de09f5cc9796aab1de49da55a59803c3b2e8f 100644
--- a/src/main/java/cz/it4i/qcmp/DataCompressor.java
+++ b/src/main/java/cz/it4i/qcmp/DataCompressor.java
@@ -1,8 +1,6 @@
 package cz.it4i.qcmp;
 
 import cz.it4i.qcmp.benchmark.CompressionBenchmark;
-import cz.it4i.qcmp.cache.QuantizationCacheManager;
-import cz.it4i.qcmp.cache.QvcFileReader;
 import cz.it4i.qcmp.cli.CliConstants;
 import cz.it4i.qcmp.cli.CompressionOptionsCLIParser;
 import cz.it4i.qcmp.cli.CustomFunctionBase;
@@ -11,6 +9,8 @@ import cz.it4i.qcmp.compression.ImageCompressor;
 import cz.it4i.qcmp.compression.ImageDecompressor;
 import cz.it4i.qcmp.fileformat.FileExtensions;
 import cz.it4i.qcmp.fileformat.IQvcFile;
+import cz.it4i.qcmp.io.QuantizationCacheManager;
+import cz.it4i.qcmp.io.QvcFileReader;
 import org.apache.commons.cli.*;
 
 import java.io.IOException;
diff --git a/src/main/java/cz/it4i/qcmp/benchmark/SQBenchmark.java b/src/main/java/cz/it4i/qcmp/benchmark/SQBenchmark.java
index fe2581bed6e97bd0258895dde39a91796b26732f..05ea050b9ce4ad9392525ae992be6c5c97a7babc 100644
--- a/src/main/java/cz/it4i/qcmp/benchmark/SQBenchmark.java
+++ b/src/main/java/cz/it4i/qcmp/benchmark/SQBenchmark.java
@@ -1,9 +1,9 @@
 package cz.it4i.qcmp.benchmark;
 
 import cz.it4i.qcmp.U16;
-import cz.it4i.qcmp.cache.QuantizationCacheManager;
 import cz.it4i.qcmp.cli.CompressionOptionsCLIParser;
 import cz.it4i.qcmp.compression.CompressionOptions;
+import cz.it4i.qcmp.io.QuantizationCacheManager;
 import cz.it4i.qcmp.io.loader.IPlaneLoader;
 import cz.it4i.qcmp.io.loader.PlaneLoaderFactory;
 import cz.it4i.qcmp.quantization.QTrainIteration;
diff --git a/src/main/java/cz/it4i/qcmp/compression/SQImageCompressor.java b/src/main/java/cz/it4i/qcmp/compression/SQImageCompressor.java
index caab1717c9ccef2dd57aba673d980214e885656a..ddfd8e82c4b04fa9d3e4247f578321da00d6d792 100644
--- a/src/main/java/cz/it4i/qcmp/compression/SQImageCompressor.java
+++ b/src/main/java/cz/it4i/qcmp/compression/SQImageCompressor.java
@@ -1,13 +1,13 @@
 package cz.it4i.qcmp.compression;
 
 import cz.it4i.qcmp.U16;
-import cz.it4i.qcmp.cache.QuantizationCacheManager;
 import cz.it4i.qcmp.compression.exception.ImageCompressionException;
 import cz.it4i.qcmp.fileformat.IQvcFile;
 import cz.it4i.qcmp.fileformat.SqQvcFile;
 import cz.it4i.qcmp.huffman.HuffmanEncoder;
 import cz.it4i.qcmp.io.InputData;
 import cz.it4i.qcmp.io.OutBitStream;
+import cz.it4i.qcmp.io.QuantizationCacheManager;
 import cz.it4i.qcmp.io.loader.IPlaneLoader;
 import cz.it4i.qcmp.io.loader.PlaneLoaderFactory;
 import cz.it4i.qcmp.quantization.scalar.LloydMaxU16ScalarQuantization;
diff --git a/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java b/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java
index e05cbbeffc14a69930dddc0b2eba728a23c30274..443ca6fb6f5779198ec9ca49367dfc8aded2de2a 100644
--- a/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java
+++ b/src/main/java/cz/it4i/qcmp/compression/VQImageCompressor.java
@@ -1,6 +1,5 @@
 package cz.it4i.qcmp.compression;
 
-import cz.it4i.qcmp.cache.QuantizationCacheManager;
 import cz.it4i.qcmp.compression.exception.ImageCompressionException;
 import cz.it4i.qcmp.data.Range;
 import cz.it4i.qcmp.fileformat.IQvcFile;
@@ -9,6 +8,7 @@ import cz.it4i.qcmp.fileformat.VqQvcFile;
 import cz.it4i.qcmp.huffman.HuffmanEncoder;
 import cz.it4i.qcmp.io.InputData;
 import cz.it4i.qcmp.io.OutBitStream;
+import cz.it4i.qcmp.io.QuantizationCacheManager;
 import cz.it4i.qcmp.io.loader.IPlaneLoader;
 import cz.it4i.qcmp.io.loader.PlaneLoaderFactory;
 import cz.it4i.qcmp.quantization.vector.LBGResult;
diff --git a/src/main/java/cz/it4i/qcmp/fileformat/SqQvcFile.java b/src/main/java/cz/it4i/qcmp/fileformat/SqQvcFile.java
index d90ec8946c93c562884d7d71af5a8e3b17692354..764a460cdd70b6a7196d95c39533f1f749f21379 100644
--- a/src/main/java/cz/it4i/qcmp/fileformat/SqQvcFile.java
+++ b/src/main/java/cz/it4i/qcmp/fileformat/SqQvcFile.java
@@ -1,11 +1,11 @@
 package cz.it4i.qcmp.fileformat;
 
-import cz.it4i.qcmp.cache.QvcFileWriter;
 import cz.it4i.qcmp.huffman.HuffmanNode;
 import cz.it4i.qcmp.huffman.HuffmanTreeBuilder;
 import cz.it4i.qcmp.io.InBitStream;
 import cz.it4i.qcmp.io.MemoryOutputStream;
 import cz.it4i.qcmp.io.OutBitStream;
+import cz.it4i.qcmp.io.QvcFileWriter;
 import cz.it4i.qcmp.quantization.scalar.SQCodebook;
 
 import java.io.DataInputStream;
diff --git a/src/main/java/cz/it4i/qcmp/fileformat/VqQvcFile.java b/src/main/java/cz/it4i/qcmp/fileformat/VqQvcFile.java
index b7ad419c6853c93a09051841fe7826be0ddfd7b3..7dbaae26ec0ff969d5fca3c700cc9c332ff17991 100644
--- a/src/main/java/cz/it4i/qcmp/fileformat/VqQvcFile.java
+++ b/src/main/java/cz/it4i/qcmp/fileformat/VqQvcFile.java
@@ -1,11 +1,11 @@
 package cz.it4i.qcmp.fileformat;
 
-import cz.it4i.qcmp.cache.QvcFileWriter;
 import cz.it4i.qcmp.huffman.HuffmanNode;
 import cz.it4i.qcmp.huffman.HuffmanTreeBuilder;
 import cz.it4i.qcmp.io.InBitStream;
 import cz.it4i.qcmp.io.MemoryOutputStream;
 import cz.it4i.qcmp.io.OutBitStream;
+import cz.it4i.qcmp.io.QvcFileWriter;
 import cz.it4i.qcmp.quantization.vector.VQCodebook;
 
 import java.io.DataInputStream;
diff --git a/src/main/java/cz/it4i/qcmp/cache/QuantizationCacheManager.java b/src/main/java/cz/it4i/qcmp/io/QuantizationCacheManager.java
similarity index 99%
rename from src/main/java/cz/it4i/qcmp/cache/QuantizationCacheManager.java
rename to src/main/java/cz/it4i/qcmp/io/QuantizationCacheManager.java
index f780fe77d6dfdb85455bd36fb9aec69ad8ba4d4f..1e9cf3f9d26631c1137f7d01317410ebc6ebd41c 100644
--- a/src/main/java/cz/it4i/qcmp/cache/QuantizationCacheManager.java
+++ b/src/main/java/cz/it4i/qcmp/io/QuantizationCacheManager.java
@@ -1,4 +1,4 @@
-package cz.it4i.qcmp.cache;
+package cz.it4i.qcmp.io;
 
 import cz.it4i.qcmp.compression.CompressionOptions;
 import cz.it4i.qcmp.data.V3i;
diff --git a/src/main/java/cz/it4i/qcmp/cache/QvcFileReader.java b/src/main/java/cz/it4i/qcmp/io/QvcFileReader.java
similarity index 98%
rename from src/main/java/cz/it4i/qcmp/cache/QvcFileReader.java
rename to src/main/java/cz/it4i/qcmp/io/QvcFileReader.java
index 5883a7d6b60480e4d44faa4865593947cfa18130..f8f6995d34e07e37346a667eb6584ae26d36e031 100644
--- a/src/main/java/cz/it4i/qcmp/cache/QvcFileReader.java
+++ b/src/main/java/cz/it4i/qcmp/io/QvcFileReader.java
@@ -1,7 +1,6 @@
-package cz.it4i.qcmp.cache;
+package cz.it4i.qcmp.io;
 
 import cz.it4i.qcmp.fileformat.*;
-import cz.it4i.qcmp.io.RawDataIO;
 
 import java.io.DataInputStream;
 import java.io.FileInputStream;
diff --git a/src/main/java/cz/it4i/qcmp/cache/QvcFileWriter.java b/src/main/java/cz/it4i/qcmp/io/QvcFileWriter.java
similarity index 99%
rename from src/main/java/cz/it4i/qcmp/cache/QvcFileWriter.java
rename to src/main/java/cz/it4i/qcmp/io/QvcFileWriter.java
index a643f59ec1ac67836a6cec552cb94efbd16bd6dd..ef67a80425f74dd4d384e084fa63af20708236b6 100644
--- a/src/main/java/cz/it4i/qcmp/cache/QvcFileWriter.java
+++ b/src/main/java/cz/it4i/qcmp/io/QvcFileWriter.java
@@ -1,4 +1,4 @@
-package cz.it4i.qcmp.cache;
+package cz.it4i.qcmp.io;
 
 import cz.it4i.qcmp.data.V3i;
 import cz.it4i.qcmp.fileformat.QuantizationType;