Index: /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.Designer.cs
===================================================================
--- /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.Designer.cs	(revision 4566)
+++ /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.Designer.cs	(revision 4567)
@@ -73,10 +73,11 @@
       this.openAlgorithmButton = new System.Windows.Forms.Button();
       this.newAlgorithmButton = new System.Windows.Forms.Button();
-      this.foldsTabPage = new System.Windows.Forms.TabPage();
-      this.algorithmResultsCollectionView = new HeuristicLab.Algorithms.DataAnalysis.Views.AlgorithmResultsCollectionView();
+      this.resultsTabPage = new System.Windows.Forms.TabPage();
       this.runsTabPage = new System.Windows.Forms.TabPage();
       this.storeAlgorithmInEachRunCheckBox = new System.Windows.Forms.CheckBox();
       this.runCollectionView = new HeuristicLab.Optimization.Views.RunCollectionView();
       this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
+      this.splitContainer = new System.Windows.Forms.SplitContainer();
+      this.resultCollectionView = new HeuristicLab.Optimization.Views.ResultCollectionView();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       ((System.ComponentModel.ISupportInitialize)(this.foldsNumericUpDown)).BeginInit();
@@ -87,6 +88,9 @@
       this.algorithmProblemTabPage.SuspendLayout();
       this.algorithmParametersTabPage.SuspendLayout();
-      this.foldsTabPage.SuspendLayout();
+      this.resultsTabPage.SuspendLayout();
       this.runsTabPage.SuspendLayout();
+      this.splitContainer.Panel1.SuspendLayout();
+      this.splitContainer.Panel2.SuspendLayout();
+      this.splitContainer.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -96,10 +100,10 @@
       this.errorProvider.SetIconPadding(this.nameTextBox, 2);
       this.nameTextBox.Location = new System.Drawing.Point(80, 0);
-      this.nameTextBox.Size = new System.Drawing.Size(531, 20);
+      this.nameTextBox.Size = new System.Drawing.Size(533, 20);
       // 
       // descriptionTextBox
       // 
       this.descriptionTextBox.Location = new System.Drawing.Point(80, 26);
-      this.descriptionTextBox.Size = new System.Drawing.Size(531, 20);
+      this.descriptionTextBox.Size = new System.Drawing.Size(533, 20);
       // 
       // startButton
@@ -150,5 +154,5 @@
       // 
       this.executionTimeTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.executionTimeTextBox.Location = new System.Drawing.Point(476, 517);
+      this.executionTimeTextBox.Location = new System.Drawing.Point(478, 517);
       this.executionTimeTextBox.Name = "executionTimeTextBox";
       this.executionTimeTextBox.ReadOnly = true;
@@ -160,5 +164,5 @@
       this.executionTimeLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
       this.executionTimeLabel.AutoSize = true;
-      this.executionTimeLabel.Location = new System.Drawing.Point(387, 520);
+      this.executionTimeLabel.Location = new System.Drawing.Point(389, 520);
       this.executionTimeLabel.Name = "executionTimeLabel";
       this.executionTimeLabel.Size = new System.Drawing.Size(83, 13);
@@ -170,5 +174,5 @@
       this.foldsNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
-      this.foldsNumericUpDown.Location = new System.Drawing.Point(389, 79);
+      this.foldsNumericUpDown.Location = new System.Drawing.Point(55, 26);
       this.foldsNumericUpDown.Maximum = new decimal(new int[] {
             50,
@@ -182,5 +186,5 @@
             0});
       this.foldsNumericUpDown.Name = "foldsNumericUpDown";
-      this.foldsNumericUpDown.Size = new System.Drawing.Size(222, 20);
+      this.foldsNumericUpDown.Size = new System.Drawing.Size(248, 20);
       this.foldsNumericUpDown.TabIndex = 18;
       this.foldsNumericUpDown.ThousandsSeparator = true;
@@ -196,5 +200,5 @@
       // 
       this.foldsLabel.AutoSize = true;
-      this.foldsLabel.Location = new System.Drawing.Point(333, 80);
+      this.foldsLabel.Location = new System.Drawing.Point(3, 29);
       this.foldsLabel.Name = "foldsLabel";
       this.foldsLabel.Size = new System.Drawing.Size(35, 13);
@@ -206,5 +210,5 @@
       this.workersNumericUpDown.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
-      this.workersNumericUpDown.Location = new System.Drawing.Point(389, 53);
+      this.workersNumericUpDown.Location = new System.Drawing.Point(55, 0);
       this.workersNumericUpDown.Maximum = new decimal(new int[] {
             50,
@@ -218,5 +222,5 @@
             0});
       this.workersNumericUpDown.Name = "workersNumericUpDown";
-      this.workersNumericUpDown.Size = new System.Drawing.Size(222, 20);
+      this.workersNumericUpDown.Size = new System.Drawing.Size(248, 20);
       this.workersNumericUpDown.TabIndex = 20;
       this.workersNumericUpDown.ThousandsSeparator = true;
@@ -232,5 +236,5 @@
       // 
       this.workersLabel.AutoSize = true;
-      this.workersLabel.Location = new System.Drawing.Point(333, 55);
+      this.workersLabel.Location = new System.Drawing.Point(3, 3);
       this.workersLabel.Name = "workersLabel";
       this.workersLabel.Size = new System.Drawing.Size(50, 13);
@@ -241,5 +245,5 @@
       // 
       this.samplesStartLabel.AutoSize = true;
-      this.samplesStartLabel.Location = new System.Drawing.Point(3, 55);
+      this.samplesStartLabel.Location = new System.Drawing.Point(3, 3);
       this.samplesStartLabel.Name = "samplesStartLabel";
       this.samplesStartLabel.Size = new System.Drawing.Size(75, 13);
@@ -250,5 +254,5 @@
       // 
       this.samplesEndLabel.AutoSize = true;
-      this.samplesEndLabel.Location = new System.Drawing.Point(3, 80);
+      this.samplesEndLabel.Location = new System.Drawing.Point(3, 29);
       this.samplesEndLabel.Name = "samplesEndLabel";
       this.samplesEndLabel.Size = new System.Drawing.Size(72, 13);
@@ -258,22 +262,26 @@
       // samplesEndStringConvertibleValueView
       // 
+      this.samplesEndStringConvertibleValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
       this.samplesEndStringConvertibleValueView.Caption = "StringConvertibleValue View";
       this.samplesEndStringConvertibleValueView.Content = null;
       this.samplesEndStringConvertibleValueView.LabelVisible = false;
-      this.samplesEndStringConvertibleValueView.Location = new System.Drawing.Point(80, 79);
+      this.samplesEndStringConvertibleValueView.Location = new System.Drawing.Point(80, 26);
       this.samplesEndStringConvertibleValueView.Name = "samplesEndStringConvertibleValueView";
       this.samplesEndStringConvertibleValueView.ReadOnly = false;
-      this.samplesEndStringConvertibleValueView.Size = new System.Drawing.Size(247, 18);
+      this.samplesEndStringConvertibleValueView.Size = new System.Drawing.Size(223, 20);
       this.samplesEndStringConvertibleValueView.TabIndex = 24;
       // 
       // samplesStartStringConvertibleValueView
       // 
+      this.samplesStartStringConvertibleValueView.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
       this.samplesStartStringConvertibleValueView.Caption = "StringConvertibleValue View";
       this.samplesStartStringConvertibleValueView.Content = null;
       this.samplesStartStringConvertibleValueView.LabelVisible = false;
-      this.samplesStartStringConvertibleValueView.Location = new System.Drawing.Point(80, 54);
+      this.samplesStartStringConvertibleValueView.Location = new System.Drawing.Point(80, 0);
       this.samplesStartStringConvertibleValueView.Name = "samplesStartStringConvertibleValueView";
       this.samplesStartStringConvertibleValueView.ReadOnly = false;
-      this.samplesStartStringConvertibleValueView.Size = new System.Drawing.Size(247, 18);
+      this.samplesStartStringConvertibleValueView.Size = new System.Drawing.Size(223, 20);
       this.samplesStartStringConvertibleValueView.TabIndex = 22;
       // 
@@ -284,10 +292,10 @@
                   | System.Windows.Forms.AnchorStyles.Right)));
       this.tabControl.Controls.Add(this.algorithmTabPage);
-      this.tabControl.Controls.Add(this.foldsTabPage);
+      this.tabControl.Controls.Add(this.resultsTabPage);
       this.tabControl.Controls.Add(this.runsTabPage);
-      this.tabControl.Location = new System.Drawing.Point(0, 105);
+      this.tabControl.Location = new System.Drawing.Point(0, 113);
       this.tabControl.Name = "tabControl";
       this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(614, 403);
+      this.tabControl.Size = new System.Drawing.Size(616, 395);
       this.tabControl.TabIndex = 25;
       // 
@@ -302,5 +310,5 @@
       this.algorithmTabPage.Name = "algorithmTabPage";
       this.algorithmTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.algorithmTabPage.Size = new System.Drawing.Size(606, 377);
+      this.algorithmTabPage.Size = new System.Drawing.Size(608, 369);
       this.algorithmTabPage.TabIndex = 0;
       this.algorithmTabPage.Text = "Algorithm";
@@ -319,5 +327,5 @@
       this.algorithmNamedItemView.Name = "algorithmNamedItemView";
       this.algorithmNamedItemView.ReadOnly = false;
-      this.algorithmNamedItemView.Size = new System.Drawing.Size(594, 52);
+      this.algorithmNamedItemView.Size = new System.Drawing.Size(596, 52);
       this.algorithmNamedItemView.TabIndex = 29;
       // 
@@ -332,5 +340,5 @@
       this.algorithmTabControl.Name = "algorithmTabControl";
       this.algorithmTabControl.SelectedIndex = 0;
-      this.algorithmTabControl.Size = new System.Drawing.Size(592, 277);
+      this.algorithmTabControl.Size = new System.Drawing.Size(594, 269);
       this.algorithmTabControl.TabIndex = 28;
       // 
@@ -343,5 +351,5 @@
       this.algorithmProblemTabPage.Name = "algorithmProblemTabPage";
       this.algorithmProblemTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.algorithmProblemTabPage.Size = new System.Drawing.Size(584, 251);
+      this.algorithmProblemTabPage.Size = new System.Drawing.Size(586, 243);
       this.algorithmProblemTabPage.TabIndex = 0;
       this.algorithmProblemTabPage.Text = "Problem";
@@ -373,5 +381,5 @@
       this.algorithmProblemViewHost.Name = "algorithmProblemViewHost";
       this.algorithmProblemViewHost.ReadOnly = false;
-      this.algorithmProblemViewHost.Size = new System.Drawing.Size(572, 209);
+      this.algorithmProblemViewHost.Size = new System.Drawing.Size(574, 201);
       this.algorithmProblemViewHost.TabIndex = 0;
       this.algorithmProblemViewHost.ViewType = null;
@@ -394,5 +402,5 @@
       this.algorithmParametersTabPage.Name = "algorithmParametersTabPage";
       this.algorithmParametersTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.algorithmParametersTabPage.Size = new System.Drawing.Size(584, 251);
+      this.algorithmParametersTabPage.Size = new System.Drawing.Size(586, 243);
       this.algorithmParametersTabPage.TabIndex = 1;
       this.algorithmParametersTabPage.Text = "Parameters";
@@ -407,5 +415,5 @@
       this.algorithmParameterCollectionView.Name = "algorithmParameterCollectionView";
       this.algorithmParameterCollectionView.ReadOnly = false;
-      this.algorithmParameterCollectionView.Size = new System.Drawing.Size(578, 245);
+      this.algorithmParameterCollectionView.Size = new System.Drawing.Size(580, 237);
       this.algorithmParameterCollectionView.TabIndex = 0;
       // 
@@ -432,25 +440,14 @@
       this.newAlgorithmButton.Click += new System.EventHandler(this.newAlgorithmButton_Click);
       // 
-      // foldsTabPage
-      // 
-      this.foldsTabPage.Controls.Add(this.algorithmResultsCollectionView);
-      this.foldsTabPage.Location = new System.Drawing.Point(4, 22);
-      this.foldsTabPage.Name = "foldsTabPage";
-      this.foldsTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.foldsTabPage.Size = new System.Drawing.Size(606, 377);
-      this.foldsTabPage.TabIndex = 1;
-      this.foldsTabPage.Text = "Folds";
-      this.foldsTabPage.UseVisualStyleBackColor = true;
-      // 
-      // algorithmResultsCollectionView
-      // 
-      this.algorithmResultsCollectionView.Caption = "View";
-      this.algorithmResultsCollectionView.Content = null;
-      this.algorithmResultsCollectionView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.algorithmResultsCollectionView.Location = new System.Drawing.Point(3, 3);
-      this.algorithmResultsCollectionView.Name = "algorithmResultsCollectionView";
-      this.algorithmResultsCollectionView.ReadOnly = true;
-      this.algorithmResultsCollectionView.Size = new System.Drawing.Size(600, 371);
-      this.algorithmResultsCollectionView.TabIndex = 0;
+      // resultsTabPage
+      // 
+      this.resultsTabPage.Controls.Add(this.resultCollectionView);
+      this.resultsTabPage.Location = new System.Drawing.Point(4, 22);
+      this.resultsTabPage.Name = "resultsTabPage";
+      this.resultsTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.resultsTabPage.Size = new System.Drawing.Size(608, 369);
+      this.resultsTabPage.TabIndex = 1;
+      this.resultsTabPage.Text = "Results";
+      this.resultsTabPage.UseVisualStyleBackColor = true;
       // 
       // runsTabPage
@@ -461,5 +458,5 @@
       this.runsTabPage.Name = "runsTabPage";
       this.runsTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.runsTabPage.Size = new System.Drawing.Size(606, 377);
+      this.runsTabPage.Size = new System.Drawing.Size(608, 369);
       this.runsTabPage.TabIndex = 2;
       this.runsTabPage.Text = "Runs";
@@ -490,5 +487,5 @@
       this.runCollectionView.Name = "runCollectionView";
       this.runCollectionView.ReadOnly = false;
-      this.runCollectionView.Size = new System.Drawing.Size(600, 371);
+      this.runCollectionView.Size = new System.Drawing.Size(602, 363);
       this.runCollectionView.TabIndex = 3;
       // 
@@ -499,4 +496,39 @@
       this.openFileDialog.Filter = "HeuristicLab Files|*.hl|All Files|*.*";
       this.openFileDialog.Title = "Open Algorithm";
+      // 
+      // splitContainer
+      // 
+      this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.splitContainer.Location = new System.Drawing.Point(0, 52);
+      this.splitContainer.Name = "splitContainer";
+      // 
+      // splitContainer.Panel1
+      // 
+      this.splitContainer.Panel1.Controls.Add(this.samplesEndStringConvertibleValueView);
+      this.splitContainer.Panel1.Controls.Add(this.samplesStartStringConvertibleValueView);
+      this.splitContainer.Panel1.Controls.Add(this.samplesStartLabel);
+      this.splitContainer.Panel1.Controls.Add(this.samplesEndLabel);
+      // 
+      // splitContainer.Panel2
+      // 
+      this.splitContainer.Panel2.Controls.Add(this.foldsNumericUpDown);
+      this.splitContainer.Panel2.Controls.Add(this.foldsLabel);
+      this.splitContainer.Panel2.Controls.Add(this.workersLabel);
+      this.splitContainer.Panel2.Controls.Add(this.workersNumericUpDown);
+      this.splitContainer.Size = new System.Drawing.Size(616, 55);
+      this.splitContainer.SplitterDistance = 306;
+      this.splitContainer.TabIndex = 26;
+      // 
+      // resultCollectionView
+      // 
+      this.resultCollectionView.Caption = "ResultCollection View";
+      this.resultCollectionView.Content = null;
+      this.resultCollectionView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.resultCollectionView.Location = new System.Drawing.Point(3, 3);
+      this.resultCollectionView.Name = "resultCollectionView";
+      this.resultCollectionView.ReadOnly = true;
+      this.resultCollectionView.Size = new System.Drawing.Size(602, 363);
+      this.resultCollectionView.TabIndex = 0;
       // 
       // CrossValidationView
@@ -507,30 +539,16 @@
       this.Controls.Add(this.executionTimeTextBox);
       this.Controls.Add(this.executionTimeLabel);
-      this.Controls.Add(this.samplesStartStringConvertibleValueView);
       this.Controls.Add(this.startButton);
-      this.Controls.Add(this.workersNumericUpDown);
-      this.Controls.Add(this.workersLabel);
-      this.Controls.Add(this.samplesEndStringConvertibleValueView);
-      this.Controls.Add(this.samplesEndLabel);
       this.Controls.Add(this.pauseButton);
-      this.Controls.Add(this.foldsNumericUpDown);
-      this.Controls.Add(this.foldsLabel);
-      this.Controls.Add(this.samplesStartLabel);
       this.Controls.Add(this.stopButton);
       this.Controls.Add(this.resetButton);
+      this.Controls.Add(this.splitContainer);
       this.Name = "CrossValidationView";
-      this.Size = new System.Drawing.Size(614, 538);
+      this.Size = new System.Drawing.Size(616, 538);
+      this.Controls.SetChildIndex(this.splitContainer, 0);
       this.Controls.SetChildIndex(this.resetButton, 0);
       this.Controls.SetChildIndex(this.stopButton, 0);
-      this.Controls.SetChildIndex(this.samplesStartLabel, 0);
-      this.Controls.SetChildIndex(this.foldsLabel, 0);
-      this.Controls.SetChildIndex(this.foldsNumericUpDown, 0);
       this.Controls.SetChildIndex(this.pauseButton, 0);
-      this.Controls.SetChildIndex(this.samplesEndLabel, 0);
-      this.Controls.SetChildIndex(this.samplesEndStringConvertibleValueView, 0);
-      this.Controls.SetChildIndex(this.workersLabel, 0);
-      this.Controls.SetChildIndex(this.workersNumericUpDown, 0);
       this.Controls.SetChildIndex(this.startButton, 0);
-      this.Controls.SetChildIndex(this.samplesStartStringConvertibleValueView, 0);
       this.Controls.SetChildIndex(this.executionTimeLabel, 0);
       this.Controls.SetChildIndex(this.executionTimeTextBox, 0);
@@ -548,7 +566,12 @@
       this.algorithmProblemTabPage.ResumeLayout(false);
       this.algorithmParametersTabPage.ResumeLayout(false);
-      this.foldsTabPage.ResumeLayout(false);
+      this.resultsTabPage.ResumeLayout(false);
       this.runsTabPage.ResumeLayout(false);
       this.runsTabPage.PerformLayout();
+      this.splitContainer.Panel1.ResumeLayout(false);
+      this.splitContainer.Panel1.PerformLayout();
+      this.splitContainer.Panel2.ResumeLayout(false);
+      this.splitContainer.Panel2.PerformLayout();
+      this.splitContainer.ResumeLayout(false);
       this.ResumeLayout(false);
       this.PerformLayout();
@@ -558,5 +581,4 @@
     #endregion
 
-    private AlgorithmResultsCollectionView algorithmResultsCollectionView;
     private System.Windows.Forms.Button startButton;
     private System.Windows.Forms.Button pauseButton;
@@ -575,5 +597,5 @@
     private System.Windows.Forms.TabControl tabControl;
     private System.Windows.Forms.TabPage algorithmTabPage;
-    private System.Windows.Forms.TabPage foldsTabPage;
+    private System.Windows.Forms.TabPage resultsTabPage;
     private System.Windows.Forms.Button openAlgorithmButton;
     private System.Windows.Forms.Button newAlgorithmButton;
@@ -590,4 +612,6 @@
     private Optimization.Views.RunCollectionView runCollectionView;
     private System.Windows.Forms.CheckBox storeAlgorithmInEachRunCheckBox;
+    private System.Windows.Forms.SplitContainer splitContainer;
+    private Optimization.Views.ResultCollectionView resultCollectionView;
   }
 }
Index: /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.cs
===================================================================
--- /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.cs	(revision 4566)
+++ /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis.Views/3.3/CrossValidationView.cs	(revision 4567)
@@ -50,6 +50,6 @@
       base.OnContentChanged();
       if (Content == null) {
-        workersNumericUpDown.Value = 0;
-        foldsNumericUpDown.Value = 0;
+        workersNumericUpDown.Value = 1;
+        foldsNumericUpDown.Value = 2;
         samplesStartStringConvertibleValueView.Content = null;
         samplesEndStringConvertibleValueView.Content = null;
@@ -57,5 +57,5 @@
         algorithmProblemViewHost.Content = null;
         algorithmParameterCollectionView.Content = null;
-        algorithmResultsCollectionView.Content = null;
+        resultCollectionView.Content = null;
         runCollectionView.Content = null;
         storeAlgorithmInEachRunCheckBox.Checked = true;
@@ -70,5 +70,5 @@
         runCollectionView.Content = Content.Runs;
         algorithmParameterCollectionView.Content = ((IParameterizedNamedItem)Content).Parameters;
-        algorithmResultsCollectionView.Content = Content.ClonedAlgorithms;
+        resultCollectionView.Content = Content.Results;
         executionTimeTextBox.Text = Content.ExecutionTime.ToString();
         storeAlgorithmInEachRunCheckBox.Checked = Content.StoreAlgorithmInEachRun;
@@ -349,4 +349,5 @@
     }
     #endregion
+
   }
 }
Index: /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis/3.3/CrossValidation.cs
===================================================================
--- /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis/3.3/CrossValidation.cs	(revision 4566)
+++ /branches/HeuristicLab.Classification/HeuristicLab.Algorithms.DataAnalysis/3.3/CrossValidation.cs	(revision 4567)
@@ -43,5 +43,4 @@
 
       executionState = ExecutionState.Stopped;
-      executionTime = TimeSpan.Zero;
       runs = new RunCollection();
       runsCounter = 0;
@@ -73,7 +72,5 @@
     public override IDeepCloneable Clone(Cloner cloner) {
       CrossValidation clone = (CrossValidation)base.Clone(cloner);
-      clone.DeregisterEvents(); //not necessary
       clone.executionState = executionState;
-      clone.executionTime = executionTime;
       clone.storeAlgorithmInEachRun = storeAlgorithmInEachRun;
       clone.runs = (RunCollection)cloner.Clone(runs);
@@ -88,5 +85,4 @@
       return clone;
     }
-
     #endregion
 
@@ -228,16 +224,9 @@
     }
 
-    [Storable]
-    private TimeSpan executionTime;
     public TimeSpan ExecutionTime {
       get {
-        if (ExecutionState != ExecutionState.Stopped && ExecutionState != ExecutionState.Prepared)
-          return executionTime + TimeSpan.FromMilliseconds(clonedAlgorithms.Select(x => x.ExecutionTime.TotalMilliseconds).Sum());
-        else
-          return executionTime;
-      }
-      private set {
-        executionTime = value;
-        OnExecutionTimeChanged();
+        if (ExecutionState != ExecutionState.Prepared)
+          return TimeSpan.FromMilliseconds(clonedAlgorithms.Select(x => x.ExecutionTime.TotalMilliseconds).Sum());
+        return TimeSpan.Zero;
       }
     }
@@ -247,4 +236,5 @@
       if (ExecutionState == ExecutionState.Started)
         throw new InvalidOperationException(string.Format("Prepare not allowed in execution state \"{0}\".", ExecutionState));
+      results.Clear();
       clonedAlgorithms.Clear();
       if (Algorithm != null) {
@@ -357,5 +347,5 @@
         results.Add(result.Name, result.Value);
 
-      results.Add("Execution Time", new TimeSpanValue(TimeSpan.FromMilliseconds(clonedAlgorithms.Select(x => x.ExecutionTime.TotalMilliseconds).Sum())));
+      results.Add("Execution Time", new TimeSpanValue(this.ExecutionTime));
       results.Add("CrossValidation Folds", new RunCollection(runs));
     }
@@ -395,5 +385,4 @@
       else throw new NotSupportedException("Could not convert any item type to double");
     }
-
     #endregion
 
@@ -404,13 +393,4 @@
       SamplesEnd.ValueChanged += new EventHandler(SamplesEnd_ValueChanged);
       RegisterClonedAlgorithmsEvents();
-      RegisterRunsEvents();
-    }
-    private void DeregisterEvents() {
-      Folds.ValueChanged -= new EventHandler(Folds_ValueChanged);
-      SamplesStart.ValueChanged -= new EventHandler(SamplesStart_ValueChanged);
-      SamplesEnd.ValueChanged -= new EventHandler(SamplesEnd_ValueChanged);
-      DeregisterClonedAlgorithmsEvents();
-      DeregisterRunsEvents();
-
     }
     private void Folds_ValueChanged(object sender, EventArgs e) {
@@ -526,4 +506,8 @@
     private void ClonedAlgorithm_Started(object sender, EventArgs e) {
       lock (locker) {
+        IAlgorithm algorithm = sender as IAlgorithm;
+        if (algorithm != null && !results.ContainsKey(algorithm.Name))
+          results.Add(new Result(algorithm.Name, "Contains results for the specific fold.", algorithm.Results));
+
         if (startPending) {
           int startedAlgorithms = clonedAlgorithms.Count(alg => alg.ExecutionState == ExecutionState.Started);
@@ -563,48 +547,4 @@
     }
     #endregion
-
-    #region run events
-    private void RegisterRunsEvents() {
-      runs.CollectionReset += new CollectionItemsChangedEventHandler<IRun>(Runs_CollectionReset);
-      runs.ItemsAdded += new CollectionItemsChangedEventHandler<IRun>(Runs_ItemsAdded);
-      runs.ItemsRemoved += new CollectionItemsChangedEventHandler<IRun>(Runs_ItemsRemoved);
-    }
-    private void DeregisterRunsEvents() {
-      runs.CollectionReset -= new CollectionItemsChangedEventHandler<IRun>(Runs_CollectionReset);
-      runs.ItemsAdded -= new CollectionItemsChangedEventHandler<IRun>(Runs_ItemsAdded);
-      runs.ItemsRemoved -= new CollectionItemsChangedEventHandler<IRun>(Runs_ItemsRemoved);
-    }
-    private void Runs_CollectionReset(object sender, CollectionItemsChangedEventArgs<IRun> e) {
-      foreach (IRun run in e.OldItems) {
-        IItem item;
-        run.Results.TryGetValue("Execution Time", out item);
-        TimeSpanValue executionTime = item as TimeSpanValue;
-        if (executionTime != null) ExecutionTime = this.executionTime - executionTime.Value;
-      }
-      foreach (IRun run in e.Items) {
-        IItem item;
-        run.Results.TryGetValue("Execution Time", out item);
-        TimeSpanValue executionTime = item as TimeSpanValue;
-        if (executionTime != null) ExecutionTime = this.executionTime + executionTime.Value;
-      }
-      runsCounter = Runs.Count;
-    }
-    private void Runs_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IRun> e) {
-      foreach (IRun run in e.Items) {
-        IItem item;
-        run.Results.TryGetValue("Execution Time", out item);
-        TimeSpanValue executionTime = item as TimeSpanValue;
-        if (executionTime != null) this.executionTime = this.executionTime + executionTime.Value;
-      }
-    }
-    private void Runs_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<IRun> e) {
-      foreach (IRun run in e.Items) {
-        IItem item;
-        run.Results.TryGetValue("Execution Time", out item);
-        TimeSpanValue executionTime = item as TimeSpanValue;
-        if (executionTime != null) ExecutionTime = this.executionTime - executionTime.Value;
-      }
-    }
-    #endregion
     #endregion
 
@@ -625,4 +565,5 @@
       EventHandler handler = Prepared;
       if (handler != null) handler(this, EventArgs.Empty);
+      OnExecutionTimeChanged();
     }
     public event EventHandler Started;
@@ -643,4 +584,7 @@
     private void OnStopped() {
       stopPending = false;
+      Dictionary<string, IItem> collectedResults = new Dictionary<string, IItem>();
+      CollectResultValues(collectedResults);
+      results.AddRange(collectedResults.Select(x => new Result(x.Key, x.Value)).Cast<IResult>().ToArray());
       runsCounter++;
       runs.Add(new Run(string.Format("{0} Run {1}", Name, runsCounter), this));
