diff --git a/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java b/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java
index 0e970b5a3a79c529b983f7d09284e495355754d0..7a2e479ca8739186c6468010eead645418383e6e 100644
--- a/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java
+++ b/src/main/java/be/cylab/java/wowa/training/AbstractSolution.java
@@ -95,9 +95,11 @@ public abstract class AbstractSolution
      */
     @Override
     public final int compareTo(final AbstractSolution solution) {
-        if (this.getFitnessScore() > solution.getFitnessScore()) {
+        if (Double.compare(this.getFitnessScore(),
+                solution.getFitnessScore()) > 0) {
             return 1;
-        } else if (this.getFitnessScore() < solution.getFitnessScore()) {
+        } else if (Double.compare(this.getFitnessScore(),
+                solution.getFitnessScore()) < 0) {
             return -1;
         } else {
             return 0;
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 d609c1123799517b93cc5b415ccffcdc892bece1..0f3a9d90ce89237539d2900912fdf58c2bc7b342 100644
--- a/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java
+++ b/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java
@@ -57,18 +57,4 @@ public class SolutionDistance extends AbstractSolution {
 
     }
 
-    /**
-     * @param solution
-     * @return int
-     */
-
-    public final int compareTo(final SolutionDistance solution) {
-        if (this.fitness_score > solution.getFitnessScore()) {
-            return 1;
-        } else if (this.fitness_score < solution.getFitnessScore()) {
-            return -1;
-        } else {
-            return 0;
-        }
-    }
 }
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 8413884e53ddd2632568d806ca1838ae0bae0e4b..1e49289650d428f03b935ef9b88678da85dc0fd0 100644
--- a/src/main/java/be/cylab/java/wowa/training/Trainer.java
+++ b/src/main/java/be/cylab/java/wowa/training/Trainer.java
@@ -117,7 +117,7 @@ public class Trainer {
             final int number_of_weight,
             final int population_size) {
         int number_of_random_element = population_size / 2;
-        if (Math.pow(number_of_weight, 2) < population_size / 2) {
+        if (Math.pow(number_of_weight, 2) < population_size / (double) 2) {
             number_of_random_element =
                     (int) (population_size - Math.pow(number_of_weight, 2));
         }
diff --git a/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java b/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java
index ecf538e1c9342f155a129457522719c334d81bb9..b70de00cf35a51c9fa5de4f3d146285759c7ce41 100644
--- a/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java
+++ b/src/main/java/be/cylab/java/wowa/training/TrainerParameters.java
@@ -31,7 +31,6 @@ public class TrainerParameters {
 
     private Logger logger;
     private int population_size;
-   //private int crossover_rate;
     private int mutation_rate;
     private int selection_method;
     private int number_of_parents;
@@ -130,10 +129,9 @@ public class TrainerParameters {
             throw new IllegalArgumentException(
                     "Crossover rate must be between 1 and 99");
         }
-        //this.crossover_rate = crossover_rate;
         int nbr_parents = Math.round(this.population_size
                 * (1 - (float) crossover_rate / 100));
-        if (nbr_parents % 2 == 1) {
+        if (nbr_parents % 2 != 0) {
             nbr_parents++;
         }
         this.number_of_parents = nbr_parents;