diff --git a/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java b/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java
index 35e4741a24e6efbceb9dab97594f4f4f02886100..b0437b7c523020bfab999a33930ee46d1742c87e 100644
--- a/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java
+++ b/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java
@@ -29,9 +29,9 @@ public class SolutionDistance implements Comparable<SolutionDistance> {
      * @return
      */
     @Override
-    public String toString() {
-        return "SolutionDistance{" +
-                "weights_w=" + Arrays.toString(weights_w)
+    final public String toString() {
+        return "SolutionDistance{"
+                + "weights_w=" + Arrays.toString(weights_w)
                 + ", weights_p=" + Arrays.toString(weights_p)
                 + ", distance=" + distance
                 + '}';
@@ -41,7 +41,7 @@ public class SolutionDistance implements Comparable<SolutionDistance> {
      * @param data
      * @param expected
      */
-    public void computeScoreTo(List<double[]> data, double[] expected) {
+    void computeScoreTo(final List<double[]> data, final double[] expected) {
 
         this.distance = 0;
         for (int i = 0; i < data.size(); i++) {
@@ -58,7 +58,7 @@ public class SolutionDistance implements Comparable<SolutionDistance> {
     /**
      * @param probability
      */
-    public void randomlyMutateWithProbability(final double probability) {
+    void randomlyMutateWithProbability(final double probability) {
         double tos = Math.random();
         if (tos > probability) {
             // do nothing
@@ -92,7 +92,7 @@ public class SolutionDistance implements Comparable<SolutionDistance> {
     /**
      *
      */
-    public void normalize() {
+    void normalize() {
         this.weights_w = Utils.normalizeWeights(this.weights_w);
         this.weights_p = Utils.normalizeWeights(this.weights_p);
     }
@@ -100,15 +100,15 @@ public class SolutionDistance implements Comparable<SolutionDistance> {
     /**
      * @return
      */
-    public double getDistance() {
+    double getDistance() {
         return distance;
     }
 
-    public double[] getWeightsW() {
+    double[] getWeightsW() {
         return this.weights_w;
     }
 
-    public double[] getWeightsP() {
+    double[] getWeightsP() {
         return this.weights_p;
     }
 }
diff --git a/src/main/java/be/cylab/java/wowa/training/Trainer.java b/src/main/java/be/cylab/java/wowa/training/Trainer.java
index da7ebfd12464d9bca4bf7bb77b7b7300cf87bc8d..0f2c14ed32b2ae6a649d1c9a917b01bfc30db4cf 100644
--- a/src/main/java/be/cylab/java/wowa/training/Trainer.java
+++ b/src/main/java/be/cylab/java/wowa/training/Trainer.java
@@ -279,23 +279,29 @@ public class Trainer {
      * @return
      */
     private void reproduce(final SolutionDistance dad,
-                                             final SolutionDistance mom,
-                                             final List<SolutionDistance> solutions,
-                                             final int cut_position,
-                                             final double beta
+                           final SolutionDistance mom,
+                           final List<SolutionDistance> solutions,
+                           final int cut_position,
+                           final double beta
     ) {
         double p_new1_W = dad.getWeightsW()[cut_position] - beta
-                * (dad.getWeightsW()[cut_position] - mom.getWeightsW()[cut_position]);
+                * (dad.getWeightsW()[cut_position]
+                - mom.getWeightsW()[cut_position]);
         double p_new2_W = mom.getWeightsW()[cut_position] + beta
-                * (dad.getWeightsW()[cut_position] - mom.getWeightsW()[cut_position]);
+                * (dad.getWeightsW()[cut_position]
+                - mom.getWeightsW()[cut_position]);
 
         double p_new1_P = dad.getWeightsP()[cut_position] - beta
-                * (dad.getWeightsP()[cut_position] - mom.getWeightsP()[cut_position]);
+                * (dad.getWeightsP()[cut_position]
+                - mom.getWeightsP()[cut_position]);
         double p_new2_P = mom.getWeightsP()[cut_position] + beta
-                * (dad.getWeightsP()[cut_position] - mom.getWeightsP()[cut_position]);
+                * (dad.getWeightsP()[cut_position]
+                - mom.getWeightsP()[cut_position]);
 
-        SolutionDistance child1 = new SolutionDistance(dad.getWeightsP().length);
-        SolutionDistance child2 = new SolutionDistance(dad.getWeightsP().length);
+        SolutionDistance child1 =
+                new SolutionDistance(dad.getWeightsP().length);
+        SolutionDistance child2 =
+                new SolutionDistance(dad.getWeightsP().length);
 
         for (int i = 0; i < cut_position; i++) {
             child1.getWeightsW()[i] = dad.getWeightsW()[i];