diff --git a/src/main/java/azgracompress/fileformat/QCMPFileHeader.java b/src/main/java/azgracompress/fileformat/QCMPFileHeader.java
index 9944d720ba461521ebb4b81491fdeadaaf5de2bd..80da0987432d8d2a7843661262d48c208aea97d7 100644
--- a/src/main/java/azgracompress/fileformat/QCMPFileHeader.java
+++ b/src/main/java/azgracompress/fileformat/QCMPFileHeader.java
@@ -78,7 +78,11 @@ public class QCMPFileHeader {
         }
 
         byte[] magicBuffer = new byte[QCMP_MAGIC_VALUE.length()];
-        assert (inputStream.readNBytes(magicBuffer, 0, QCMP_MAGIC_VALUE.length()) == QCMP_MAGIC_VALUE.length());
+        final int readFromMagic = inputStream.readNBytes(magicBuffer, 0, QCMP_MAGIC_VALUE.length());
+        if (readFromMagic != QCMP_MAGIC_VALUE.length()) {
+            // Invalid magic value.
+            return false;
+        }
 
         magicValue = new String(magicBuffer);
         if (!magicValue.equals(QCMP_MAGIC_VALUE)) {
diff --git a/src/main/java/azgracompress/quantization/scalar/LloydMaxU16ScalarQuantization.java b/src/main/java/azgracompress/quantization/scalar/LloydMaxU16ScalarQuantization.java
index 681823e09d7334190814598b9bb2e485434d6287..4179ac8cb27bf29f7b0585b963e22ee8cad5a82e 100644
--- a/src/main/java/azgracompress/quantization/scalar/LloydMaxU16ScalarQuantization.java
+++ b/src/main/java/azgracompress/quantization/scalar/LloydMaxU16ScalarQuantization.java
@@ -205,7 +205,6 @@ public class LloydMaxU16ScalarQuantization {
         ArrayList<QTrainIteration> solutionHistory = new ArrayList<>();
 
         recalculateBoundaryPoints();
-        //        recalculateCentroids();
         initializeCentroids();
 
         currentMse = getCurrentMse();
@@ -225,9 +224,6 @@ public class LloydMaxU16ScalarQuantization {
                 recalculateCentroids();
             }
 
-            // TODO(Moravec):   Check if we are improving MSE.
-            //                  Save the best centroids, the lowest MSE.
-
             currMAE = calculateMAE();
 
             prevMse = currentMse;
@@ -236,12 +232,6 @@ public class LloydMaxU16ScalarQuantization {
 
             //            System.out.println(String.format("Improvement: %.4f", mseImprovement));
 
-            //            if ((prevMAE < currMAE) && (iteration != 0)) {
-            //                System.err.println(String.format(
-            //                        "MAE = +%.5f",
-            //                        currMAE - prevMAE));
-            //            }
-
             psnr = Utils.calculatePsnr(currentMse, U16.Max);
             solutionHistory.add(new QTrainIteration(++iteration, currentMse, currentMse, psnr, psnr));
             //            dist = (prevMse - currentMse) / currentMse;
@@ -253,23 +243,17 @@ public class LloydMaxU16ScalarQuantization {
                                                  psnr));
             }
 
-            //            if (mseImprovement < 1.0 && mseImprovement > 0.0005) {
-            //                System.out.println("----- low improvement " + mseImprovement);
-            //            }
-
             if (mseImprovement < 1.0) {
                 if ((++noImprovementCounter) >= PATIENCE) {
                     break;
                 }
-
             }
 
 
-        } while (true); //0.001 //0.0005// || currMAE > 1500//mseImprovement > 0.0005
+        } while (true);
         if (verbose) {
             System.out.println("\nFinished training.");
         }
-        System.out.println(String.format("Final MAE: %.4f after %d iterations", currMAE, iteration));
         return solutionHistory.toArray(new QTrainIteration[0]);
     }