diff --git a/src/main/java/azgracompress/cache/ICacheFile.java b/src/main/java/azgracompress/cache/ICacheFile.java
index 5cf5b8dac9ce60d6aee545e4392faf5d6b9c5ca4..e1e519153be3eabb5418c9a97d56a8cb35c4f6ad 100644
--- a/src/main/java/azgracompress/cache/ICacheFile.java
+++ b/src/main/java/azgracompress/cache/ICacheFile.java
@@ -15,4 +15,6 @@ public interface ICacheFile {
     CacheFileHeader getHeader();
 
     void report(StringBuilder builder);
+
+    String klass();
 }
diff --git a/src/main/java/azgracompress/cache/SQCacheFile.java b/src/main/java/azgracompress/cache/SQCacheFile.java
index b6707ad93328e87ec599cce9c8233ed44a54a9f4..99b78c39308f78e71dbd9e03970a7f673fa2555e 100644
--- a/src/main/java/azgracompress/cache/SQCacheFile.java
+++ b/src/main/java/azgracompress/cache/SQCacheFile.java
@@ -19,7 +19,7 @@ public class SQCacheFile implements ICacheFile {
         assert (header.getCodebookSize() == codebook.getCodebookSize());
     }
 
-    public void writeToStream(DataOutputStream outputStream) throws IOException {
+    public void writeToStream(final DataOutputStream outputStream) throws IOException {
         header.writeToStream(outputStream);
         final int[] quantizationValues = codebook.getCentroids();
         final long[] frequencies = codebook.getSymbolFrequencies();
@@ -32,13 +32,13 @@ public class SQCacheFile implements ICacheFile {
         }
     }
 
-    public void readFromStream(DataInputStream inputStream) throws IOException {
+    public void readFromStream(final DataInputStream inputStream) throws IOException {
         header = new CacheFileHeader();
         header.readFromStream(inputStream);
         readFromStream(inputStream, header);
     }
 
-    public void readFromStream(DataInputStream inputStream, CacheFileHeader header) throws IOException {
+    public void readFromStream(final DataInputStream inputStream, final CacheFileHeader header) throws IOException {
         this.header = header;
         final int codebookSize = header.getCodebookSize();
         final int[] centroids = new int[codebookSize];
@@ -62,7 +62,7 @@ public class SQCacheFile implements ICacheFile {
     }
 
     @Override
-    public void report(StringBuilder builder) {
+    public void report(final StringBuilder builder) {
 
         final int[] centroids = codebook.getCentroids();
         for (int i = 0; i < centroids.length; i++) {
@@ -73,4 +73,9 @@ public class SQCacheFile implements ICacheFile {
             }
         }
     }
+
+    @Override
+    public String klass() {
+        return "SQCacheFile";
+    }
 }
diff --git a/src/main/java/azgracompress/cache/VQCacheFile.java b/src/main/java/azgracompress/cache/VQCacheFile.java
index 9a0df5e751d79911ed144f1c48c9e33456c0d1da..feb842f80101f465f6d4ab08a5317818c90641af 100644
--- a/src/main/java/azgracompress/cache/VQCacheFile.java
+++ b/src/main/java/azgracompress/cache/VQCacheFile.java
@@ -19,7 +19,7 @@ public class VQCacheFile implements ICacheFile {
         assert (header.getCodebookSize() == codebook.getCodebookSize());
     }
 
-    public void writeToStream(DataOutputStream outputStream) throws IOException {
+    public void writeToStream(final DataOutputStream outputStream) throws IOException {
         header.writeToStream(outputStream);
 
         final int[][] entries = codebook.getVectors();
@@ -35,14 +35,14 @@ public class VQCacheFile implements ICacheFile {
         }
     }
 
-    public void readFromStream(DataInputStream inputStream) throws IOException {
+    public void readFromStream(final DataInputStream inputStream) throws IOException {
         header = new CacheFileHeader();
         header.readFromStream(inputStream);
         readFromStream(inputStream, header);
     }
 
     @Override
-    public void readFromStream(DataInputStream inputStream, CacheFileHeader header) throws IOException {
+    public void readFromStream(final DataInputStream inputStream, final CacheFileHeader header) throws IOException {
         this.header = header;
         final int codebookSize = header.getCodebookSize();
 
@@ -72,13 +72,18 @@ public class VQCacheFile implements ICacheFile {
     }
 
     @Override
-    public void report(StringBuilder builder) {
+    public void report(final StringBuilder builder) {
         final int[][] vectors = codebook.getVectors();
-        for (int[] vector : vectors) {
+        for (final int[] vector : vectors) {
             builder.append("- - - - - - - - - - - - - - - - - - - - - - - - -\n");
             for (final int x : vector) {
                 builder.append(x).append(';');
             }
         }
     }
+
+    @Override
+    public String klass() {
+        return "VQCacheFile";
+    }
 }