Index: trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs	(revision 4775)
+++ trunk/sources/HeuristicLab.Analysis/3.3/AlleleFrequencyAnalyzer.cs	(revision 4777)
@@ -164,13 +164,22 @@
           allelesTable = new DataTable("Alleles");
           results.Add(new Result("Alleles", allelesTable));
+
           allelesTable.Rows.Add(new DataRow("Unique Alleles"));
-          DataRowVisualProperties visualProperties = new DataRowVisualProperties();
-          visualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Line;
-          visualProperties.SecondYAxis = true;
-          visualProperties.StartIndexZero = true;
-          allelesTable.Rows.Add(new DataRow("Unique Alleles of Best Known Solution", null, visualProperties));
-          allelesTable.Rows.Add(new DataRow("Fixed Alleles", null, visualProperties));
-          allelesTable.Rows.Add(new DataRow("Fixed Alleles of Best Known Solution", null, visualProperties));
-          allelesTable.Rows.Add(new DataRow("Lost Alleles of Best Known Solution", null, visualProperties));
+
+          allelesTable.Rows.Add(new DataRow("Unique Alleles of Best Known Solution", null));
+          allelesTable.Rows["Unique Alleles of Best Known Solution"].VisualProperties.SecondYAxis = true;
+          allelesTable.Rows["Unique Alleles of Best Known Solution"].VisualProperties.StartIndexZero = true;
+
+          allelesTable.Rows.Add(new DataRow("Fixed Alleles", null));
+          allelesTable.Rows["Fixed Alleles"].VisualProperties.SecondYAxis = true;
+          allelesTable.Rows["Fixed Alleles"].VisualProperties.StartIndexZero = true;
+
+          allelesTable.Rows.Add(new DataRow("Fixed Alleles of Best Known Solution", null));
+          allelesTable.Rows["Fixed Alleles of Best Known Solution"].VisualProperties.SecondYAxis = true;
+          allelesTable.Rows["Fixed Alleles of Best Known Solution"].VisualProperties.StartIndexZero = true;
+
+          allelesTable.Rows.Add(new DataRow("Lost Alleles of Best Known Solution", null));
+          allelesTable.Rows["Lost Alleles of Best Known Solution"].VisualProperties.SecondYAxis = true;
+          allelesTable.Rows["Lost Alleles of Best Known Solution"].VisualProperties.StartIndexZero = true;
         } else {
           allelesTable = (DataTable)results["Alleles"].Value;
Index: trunk/sources/HeuristicLab.Analysis/3.3/DataRow.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/DataRow.cs	(revision 4775)
+++ trunk/sources/HeuristicLab.Analysis/3.3/DataRow.cs	(revision 4777)
@@ -66,5 +66,4 @@
     #endregion
 
-    #region Storing & Cloning
     [StorableConstructor]
     private DataRow(bool deserializing) : base(deserializing) { }
@@ -74,8 +73,4 @@
       this.values = new ObservableList<double>(original.values);
     }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new DataRow(this, cloner);
-    }
-    #endregion
     public DataRow()
       : base() {
@@ -93,8 +88,8 @@
       values = new ObservableList<double>();
     }
-    public DataRow(string name, string description, DataRowVisualProperties visualProperties)
+    public DataRow(string name, string description, IEnumerable<double> values)
       : base(name, description) {
-      VisualProperties = visualProperties;
-      values = new ObservableList<double>();
+      VisualProperties = new DataRowVisualProperties();
+      this.values = new ObservableList<double>(values);
     }
 
@@ -106,4 +101,8 @@
     }
     #endregion
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new DataRow(this, cloner);
+    }
 
     public event EventHandler VisualPropertiesChanged;
Index: trunk/sources/HeuristicLab.Analysis/3.3/DataRowVisualProperties.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/DataRowVisualProperties.cs	(revision 4775)
+++ trunk/sources/HeuristicLab.Analysis/3.3/DataRowVisualProperties.cs	(revision 4777)
@@ -104,5 +104,4 @@
     #endregion
 
-    #region Storing & Cloning
     [StorableConstructor]
     protected DataRowVisualProperties(bool deserializing) : base() { }
@@ -114,8 +113,4 @@
       this.startIndexZero = original.startIndexZero;
     }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new DataRowVisualProperties(this, cloner);
-    }
-    #endregion
     public DataRowVisualProperties() {
       chartType = DataRowChartType.Line;
@@ -131,4 +126,8 @@
     }
 
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new DataRowVisualProperties(this, cloner);
+    }
+
     public event PropertyChangedEventHandler PropertyChanged;
     protected virtual void OnPropertyChanged(string propertyName) {
Index: trunk/sources/HeuristicLab.Analysis/3.3/PopulationDiversityAnalyzer.cs
===================================================================
--- trunk/sources/HeuristicLab.Analysis/3.3/PopulationDiversityAnalyzer.cs	(revision 4775)
+++ trunk/sources/HeuristicLab.Analysis/3.3/PopulationDiversityAnalyzer.cs	(revision 4777)
@@ -171,10 +171,10 @@
             minAvgMaxSimilarityDataTable = new DataTable("Average Minimum/Average/Maximum Solution Similarity");
             results.Add(new Result("Average Minimum/Average/Maximum Solution Similarity", minAvgMaxSimilarityDataTable));
-            DataRowVisualProperties visualProperties = new DataRowVisualProperties();
-            visualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Line;
-            visualProperties.StartIndexZero = true;
-            minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Minimum Solution Similarity", null, visualProperties));
-            minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Average Solution Similarity", null, visualProperties));
-            minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Maximum Solution Similarity", null, visualProperties));
+            minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Minimum Solution Similarity", null));
+            minAvgMaxSimilarityDataTable.Rows["Average Minimum Solution Similarity"].VisualProperties.StartIndexZero = true;
+            minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Average Solution Similarity", null));
+            minAvgMaxSimilarityDataTable.Rows["Average Average Solution Similarity"].VisualProperties.StartIndexZero = true;
+            minAvgMaxSimilarityDataTable.Rows.Add(new DataRow("Average Maximum Solution Similarity", null));
+            minAvgMaxSimilarityDataTable.Rows["Average Maximum Solution Similarity"].VisualProperties.StartIndexZero = true;
           } else {
             minAvgMaxSimilarityDataTable = (DataTable)results["Average Minimum/Average/Maximum Solution Similarity"].Value;
@@ -186,13 +186,10 @@
           // store minimum, average, maximum similarities data table
           DataTable minAvgMaxSimilaritiesDataTable = new DataTable("Minimum/Average/Maximum Solution Similarities");
-          minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Minimum Solution Similarity"));
+          minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Minimum Solution Similarity", null, minSimilarities));
           minAvgMaxSimilaritiesDataTable.Rows["Minimum Solution Similarity"].VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Points;
-          minAvgMaxSimilaritiesDataTable.Rows["Minimum Solution Similarity"].Values.AddRange(minSimilarities);
-          minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Average Solution Similarity"));
+          minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Average Solution Similarity", null, avgSimilarities));
           minAvgMaxSimilaritiesDataTable.Rows["Average Solution Similarity"].VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Points;
-          minAvgMaxSimilaritiesDataTable.Rows["Average Solution Similarity"].Values.AddRange(avgSimilarities);
-          minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Maximum Solution Similarity"));
+          minAvgMaxSimilaritiesDataTable.Rows.Add(new DataRow("Maximum Solution Similarity", null, maxSimilarities));
           minAvgMaxSimilaritiesDataTable.Rows["Maximum Solution Similarity"].VisualProperties.ChartType = DataRowVisualProperties.DataRowChartType.Points;
-          minAvgMaxSimilaritiesDataTable.Rows["Maximum Solution Similarity"].Values.AddRange(maxSimilarities);
           if (!results.ContainsKey("Minimum/Average/Maximum Solution Similarities")) {
             results.Add(new Result("Minimum/Average/Maximum Solution Similarities", minAvgMaxSimilaritiesDataTable));
