Index: branches/EnhancedProgress/HeuristicLab.MainForm/3.3/HeuristicLab.MainForm-3.3.csproj
===================================================================
--- branches/EnhancedProgress/HeuristicLab.MainForm/3.3/HeuristicLab.MainForm-3.3.csproj	(revision 15446)
+++ branches/EnhancedProgress/HeuristicLab.MainForm/3.3/HeuristicLab.MainForm-3.3.csproj	(revision 15477)
@@ -124,5 +124,4 @@
     <Compile Include="Interfaces\IProgress.cs" />
     <Compile Include="Plugin.cs" />
-    <Compile Include="Progress.cs" />
     <Compile Include="ViewAttribute.cs" />
     <Compile Include="Interfaces\IContentView.cs" />
Index: branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Interfaces/IProgress.cs
===================================================================
--- branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Interfaces/IProgress.cs	(revision 15446)
+++ branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Interfaces/IProgress.cs	(revision 15477)
@@ -35,4 +35,5 @@
     /// Changing the ProgressValue when ProgressBarMode is Marquee raises an Exception.
     /// </summary>
+    /// <exception cref="InvalidOperationException">Setting the ProgressValue-property while in the Marquee state is invalid.</exception>
     double ProgressValue { get; set; }
     bool CanBeStopped { get; }
@@ -40,11 +41,16 @@
 
     /// <summary>
-    /// Start (or Restart) a progress with ProgressBarMode Marquee
+    /// Start (or Restart) a progress in ProgressBarMode Continues to display specific progress values (from 0 to 1).
+    /// A new progress value is reported by setting the ProgressValue-property.
     /// </summary>
-    void Start(string message);
+    void Start(string message, double progressValue = 0);
+
     /// <summary>
-    /// Start (or Restart) a progress with ProgressBarMode Continues
+    /// Start (or Restart) a progress in ProgressBarMode Marquee to define an "unknown" progress state.
+    /// Consider using marquee when the progress is not measurable but the user should be notified that something is still happening.
+    /// Setting the ProgressValue-property in the Marquee state throws an exception.
     /// </summary>
-    void Start(string message, double progressValue);
+    void StartMarquee(string message);
+
     void Finish();
     void Stop();
Index: branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Progress.cs
===================================================================
--- branches/EnhancedProgress/HeuristicLab.MainForm/3.3/Progress.cs	(revision 15446)
+++ 	(revision )
@@ -1,189 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
- *
- * This file is part of HeuristicLab.
- *
- * HeuristicLab is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * HeuristicLab is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
- */
-#endregion
-
-using System;
-
-namespace HeuristicLab.MainForm {
-  public class Progress : IProgress {
-    private ProgressState progressState;
-    public ProgressState ProgressState {
-      get { return progressState; }
-      private set {
-        if (progressState != value) {
-          progressState = value;
-          OnProgressStateChanged();
-        }
-      }
-    }
-
-    private string message;
-    public string Message {
-      get { return message; }
-      set {
-        if (message != value) {
-          message = value;
-          OnMessageChanged();
-        }
-      }
-    }
-
-    private ProgressBarMode progressBarMode;
-    public ProgressBarMode ProgressBarMode {
-      get { return progressBarMode; }
-      set {
-        if (progressBarMode != value) {
-          progressBarMode = value;
-          OnProgressBarModeChanged();
-        }
-      }
-    }
-
-    private double progressValue;
-    public double ProgressValue {
-      get { return progressValue; }
-      set {
-        if (progressBarMode == ProgressBarMode.Marquee)
-          throw new InvalidOperationException("Cannot set ProgressValue while ProgressBar is in Marquee-Mode");
-        if (progressValue != value) {
-          progressValue = Math.Max(Math.Min(value, 1.0), 0.0);
-          OnProgressChanged();
-        }
-      }
-    }
-
-    private bool canBeStopped;
-    public bool CanBeStopped {
-      get { return canBeStopped; }
-      set {
-        if (canBeStopped != value) {
-          canBeStopped = value;
-          OnCanBeStoppedChanged();
-        }
-      }
-    }
-
-    private bool canBeCanceled;
-    public bool CanBeCanceled {
-      get { return canBeCanceled; }
-      set {
-        if (canBeCanceled != value) {
-          canBeCanceled = value;
-          OnCanBeCanceledChanged();
-        }
-      }
-    }
-
-    public Progress() {
-      progressState = ProgressState.Finished;
-      canBeStopped = false;
-      canBeCanceled = false;
-      progressBarMode = ProgressBarMode.Marquee;
-      progressValue = 0.0;
-    }
-
-    /// <summary>
-    /// Starts or restarts an "undefined" progress in marquee-mode
-    /// </summary>
-    public void Start(string message) {
-      ProgressState = ProgressState.Started;
-      ProgressBarMode = ProgressBarMode.Marquee;
-      Message = message;
-    }
-    /// <summary>
-    /// Starts or restarts a progress in continuous-mode
-    /// </summary>
-    public void Start(string message, double progressValue) {
-      ProgressState = ProgressState.Started;
-      ProgressBarMode = ProgressBarMode.Continuous;
-      ProgressValue = progressValue;
-      Message = message;
-    }
-
-    public void Finish() {
-      if (ProgressBarMode == ProgressBarMode.Continuous && ProgressValue != 1.0)
-        ProgressValue = 1.0;
-      ProgressState = ProgressState.Finished;
-    }
-
-    public void Stop() {
-      if (canBeStopped) {
-        ProgressState = ProgressState.StopRequested;
-        OnStopRequested();
-      } else throw new NotSupportedException("This progress cannot be stopped.");
-    }
-    public void Cancel() {
-      if (canBeCanceled) {
-        ProgressState = ProgressState.CancelRequested;
-        OnCancelRequested();
-      } else throw new NotSupportedException("This progress cannot be canceled.");
-    }
-
-    #region Event Handler
-    public event EventHandler ProgressStateChanged;
-    private void OnProgressStateChanged() {
-      var handler = ProgressStateChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler MessageChanged;
-    private void OnMessageChanged() {
-      var handler = MessageChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler ProgressBarModeChanged;
-    private void OnProgressBarModeChanged() {
-      var handler = ProgressBarModeChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler ProgressValueChanged;
-    private void OnProgressChanged() {
-      var handler = ProgressValueChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler CanBeStoppedChanged;
-    private void OnCanBeStoppedChanged() {
-      var handler = CanBeStoppedChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler CanBeCanceledChanged;
-    private void OnCanBeCanceledChanged() {
-      var handler = CanBeCanceledChanged;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler StopRequested;
-    private void OnStopRequested() {
-      var handler = StopRequested;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-
-    public event EventHandler CancelRequested;
-    private void OnCancelRequested() {
-      var handler = CancelRequested;
-      if (handler != null) handler(this, EventArgs.Empty);
-    }
-    #endregion
-  }
-}
