diff --git a/src/main/java/fr/irstea/associatione/model/Individual.java b/src/main/java/fr/irstea/associatione/model/Individual.java
index e50417644b0af4e02c47b6f39bb84467e4463d6c..346c245847cbc4c77eaef023d518f9afc102f5f4 100644
--- a/src/main/java/fr/irstea/associatione/model/Individual.java
+++ b/src/main/java/fr/irstea/associatione/model/Individual.java
@@ -39,12 +39,20 @@ public class Individual {
         Arrays.fill(influences, 0);
     }
 
+    public Individual(int id, int popSize, double[] individualsOpinions, double[] subjectOpinions) {
+        this.id = id;
+        this.individualsOpinions = individualsOpinions;
+        this.subjectOpinions = subjectOpinions;
+        influences = new double[popSize];
+        Arrays.fill(influences, 0);
+    }
+
     public double getOpinionOnIndividual(int ind) {
         return individualsOpinions[ind];
     }
 
     public double getOpinionOnSubject(int subject) {
-        return individualsOpinions[subject];
+        return subjectOpinions[subject];
     }
 
     public void computeInfluences(Parameters parameters) {
@@ -60,7 +68,7 @@ public class Individual {
 
     public void argumentationImpact(Parameters parameters, Individual fromInd) {
         for (int k = 0; k < parameters.getNbSubject(); k++) {
-            subjectOpinions[k] += influences[fromInd.id] * parameters.getRho() * (subjectOpinions[fromInd.id] - subjectOpinions[id]);
+            subjectOpinions[k] += influences[fromInd.id] * parameters.getRho() * (fromInd.subjectOpinions[k] - subjectOpinions[k]);
         }
     }
 
diff --git a/src/main/java/fr/irstea/associatione/model/Model.java b/src/main/java/fr/irstea/associatione/model/Model.java
index 0588e6d637c9309c6ac5923d2da01d931dee394a..bbb0760b206f8199164af625cbb06c022a5e3f95 100644
--- a/src/main/java/fr/irstea/associatione/model/Model.java
+++ b/src/main/java/fr/irstea/associatione/model/Model.java
@@ -42,7 +42,17 @@ public class Model {
         this.random = new Random();
         random.resetNextSubstream(parameters.getSeedIndex());
         this.individuals = new Individual[parameters.getPopSize()];
-        Arrays.setAll(individuals, i -> new Individual(i, parameters.getPopSize(), parameters.getNbSubject()));
+        for (int i = 0; i < individuals.length; i++) {
+            double[] individualsOpinions = new double[parameters.getPopSize()];
+            for (int j = 0; j < individualsOpinions.length; j++) {
+                individualsOpinions[j] = random.nextDouble()*10-1;
+            }
+            double[] subjectOpinions = new double[parameters.getNbSubject()];
+            for (int j = 0; j < subjectOpinions.length; j++) {
+                subjectOpinions[j] = random.nextDouble()*2-1;
+            }
+            individuals[i] = new Individual(i, parameters.getPopSize(), individualsOpinions, subjectOpinions);      
+        }
         couples = new ArrayList<>();
         for (int i = 0; i < individuals.length; i++) {
             for (int j = 0; j < i; j++) {
@@ -107,7 +117,6 @@ public class Model {
     }
 
     public static void main(String[] args) throws ProcessingException, IllegalArgumentException, IllegalAccessException {
-
         Parameters parameters = new Parameters(0, 50, 1, new DistorsionFromOpinions(), 1, 0.3);
         Model model = new Model(parameters);
         parameters.init(model);
diff --git a/src/main/java/fr/irstea/associatione/model/Random.java b/src/main/java/fr/irstea/associatione/model/Random.java
index ad6080a0dde08e8def02f586db4f97938b08ce11..5d71fcd0c81bc6550e9f1cf44e059913eead61de 100644
--- a/src/main/java/fr/irstea/associatione/model/Random.java
+++ b/src/main/java/fr/irstea/associatione/model/Random.java
@@ -38,6 +38,14 @@ public class Random {
         return randomStream.nextInt(i, i1);
     }
 
+    /**
+     * This method returns a double picked out following a Uniform law between 0
+     * and 1 with 0 and 1 excluded (can't be picked out)
+     */
+    public double nextDouble() {
+        return randomStream.nextDouble();
+    }
+
     /**
      * This method return a random order for a sequence of leng numbers.
      */
diff --git a/src/main/java/fr/irstea/associatione/model/gui/GUI.java b/src/main/java/fr/irstea/associatione/model/gui/GUI.java
index aa8554040c122d8a852e1d5956e26f3f4f436d8f..7103ad99fe8c42d4910de2b5d511744340a66886 100644
--- a/src/main/java/fr/irstea/associatione/model/gui/GUI.java
+++ b/src/main/java/fr/irstea/associatione/model/gui/GUI.java
@@ -21,6 +21,7 @@ import fr.irstea.associatione.model.Parameters;
 import fr.irstea.associatione.model.ProcessingException;
 import fr.irstea.associatione.model.distorsion.DistorsionFromOpinions;
 import java.awt.GridLayout;
+import java.util.Arrays;
 import javax.swing.JFrame;
 import javax.swing.JPanel;
 import org.jfree.chart.ChartFactory;
@@ -60,9 +61,9 @@ public class GUI {
             opinionsMeanOnSubjects.addSeries(new XYSeries(i));
         }
         chartsPanel.removeAll();
-        credibilityChartPanel = new ChartPanel(createHistogram(model.getCredibility()));
+        credibilityChartPanel = new ChartPanel(createHistogram("Credibility", model.getCredibility()));
         chartsPanel.add(credibilityChartPanel);
-        chartsPanel.add(new ChartPanel(ChartFactory.createXYLineChart("Opinions means on subjects", "timesteps", "opinions", opinionsMeanOnSubjects, PlotOrientation.VERTICAL, true, true, false)));
+        chartsPanel.add(new ChartPanel(ChartFactory.createXYLineChart("Opinions means on subjects", "timesteps", "opinions", opinionsMeanOnSubjects, PlotOrientation.VERTICAL, false, true, false)));
     }
 
     public void init(Parameters parameters) throws ProcessingException, IllegalArgumentException, IllegalAccessException {
@@ -71,7 +72,8 @@ public class GUI {
         initCharts();
         frame.pack();
         frame.setVisible(true);
-        for (int i = 0; i < 500; i++) {
+        updatePlots(model.getTimestep());
+        for (int i = 0; i < 50; i++) {
             model.iter();
             updatePlots(model.getTimestep());
         }
@@ -81,26 +83,26 @@ public class GUI {
         double[] data = new double[]{0.3, 0.3, 0.5, 0.6, 0.65};
         JFrame f = new JFrame("test");
         f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        f.setContentPane(new ChartPanel(createHistogram(data)));
+        f.setContentPane(new ChartPanel(createHistogram("Credibility", data)));
         f.pack();
         f.setVisible(true);
     }
 
     public void updatePlots(int timestep) {
-        credibilityChartPanel.setChart(createHistogram(model.getCredibility()));
-        for (int i = 0; i < model.getParameters().getPopSize(); i++) {
-            double[] data = model.getOpinionsMeanOnSubjects();
+        credibilityChartPanel.setChart(createHistogram("Credibility", model.getCredibility()));
+        double[] data = model.getOpinionsMeanOnSubjects();
+        for (int i = 0; i < data.length; i++) {
             opinionsMeanOnSubjects.getSeries(i).add(timestep, data[i]);
         }
     }
 
-    public static JFreeChart createHistogram(double[] data) {
+    public static JFreeChart createHistogram(String title, double[] data) {
         HistogramDataset dataset = new HistogramDataset();
         dataset.setType(HistogramType.SCALE_AREA_TO_1);
-        dataset.addSeries("Histogram", data, 30);
-        String plotTitle = "Histogram";
-        String xaxis = "number";
-        String yaxis = "value";
+        dataset.addSeries(title, data, 30);
+        String plotTitle = title;
+        String xaxis = "opinions";
+        String yaxis = "amount";
         PlotOrientation orientation = PlotOrientation.VERTICAL;
         boolean show = false;
         boolean toolTips = false;