Index: trunk/sources/HeuristicLab.Routing.TSP/DistanceMatrixPathTSPEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/DistanceMatrixPathTSPEvaluator.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/DistanceMatrixPathTSPEvaluator.cs	(revision 884)
@@ -29,9 +29,17 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Evaluates the TSP path by using values in the distance matrix.
+  /// </summary>
   public class DistanceMatrixPathTSPEvaluator : SingleObjectiveEvaluatorBase {
+    /// <inheritdoc/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="DistanceMatrixPathTSPEvaluator"/> with two variable 
+    /// infos (<c>Permutation</c>, <c>DistanceMatrix</c>).
+    /// </summary>
     public DistanceMatrixPathTSPEvaluator()
       : base() {
@@ -40,4 +48,10 @@
     }
 
+    /// <summary>
+    /// Calculates the length of the path in the given <paramref name="scope"/> by taking the 
+    /// values of the distance matrix.
+    /// </summary>
+    /// <param name="scope">The current scope with the permutation and the distance matrix.</param>
+    /// <returns>The calculated length.</returns>
     protected override double Evaluate(IScope scope) {
       double[,] distanceMatrix = GetVariableValue<DoubleMatrixData>("DistanceMatrix", scope, true).Data;
Index: trunk/sources/HeuristicLab.Routing.TSP/HeuristicLabRoutingTSPPlugin.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/HeuristicLabRoutingTSPPlugin.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/HeuristicLabRoutingTSPPlugin.cs	(revision 884)
@@ -26,4 +26,7 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Plugin class for HeuristicLab.Routing.TSP plugin
+  /// </summary>
   [ClassInfo(Name = "HeuristicLab.Routing.TSP-3.2")]
   [PluginFile(Filename = "HeuristicLab.Routing.TSP-3.2.dll", Filetype = PluginFileType.Assembly)]
Index: trunk/sources/HeuristicLab.Routing.TSP/PathTSPEvaluatorBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/PathTSPEvaluatorBase.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/PathTSPEvaluatorBase.cs	(revision 884)
@@ -29,5 +29,12 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Base class for TSP path evaluation, based on length calculation.
+  /// </summary>
   public abstract class PathTSPEvaluatorBase : SingleObjectiveEvaluatorBase {
+    /// <summary>
+    /// Initializes a new instance of <see cref="PathTSPEvaluatorBase"/> with two variable infos
+    /// (<c>Coordinates</c> and <c>Permutation</c>).
+    /// </summary>
     public PathTSPEvaluatorBase()
       : base() {
@@ -36,4 +43,9 @@
     }
 
+    /// <summary>
+    /// Calculates the length of a whole path of the given <paramref name="scope"/>.
+    /// </summary>
+    /// <param name="scope">The scope where to evaluate the path.</param>
+    /// <returns>The calculated length.</returns>
     protected sealed override double Evaluate(IScope scope) {
       double[,] coordinates = GetVariableValue<DoubleMatrixData>("Coordinates", scope, true).Data;
@@ -53,4 +65,12 @@
     }
 
+    /// <summary>
+    /// Calculates the distance between two given points.
+    /// </summary>
+    /// <param name="x1">The x coordinate of point 1.</param>
+    /// <param name="y1">The y coordinate of point 1.</param>
+    /// <param name="x2">The x coordinate of point 2.</param>
+    /// <param name="y2">The y coordinate of point 2.</param>
+    /// <returns>The calculated distance.</returns>
     protected abstract double CalculateDistance(double x1, double y1, double x2, double y2);
   }
Index: trunk/sources/HeuristicLab.Routing.TSP/RoundedEuclideanPathTSPEvaluator.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/RoundedEuclideanPathTSPEvaluator.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/RoundedEuclideanPathTSPEvaluator.cs	(revision 884)
@@ -29,9 +29,21 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Evaluates the TSP path by using the euclidean distance between two points.
+  /// </summary>
   public class RoundedEuclideanPathTSPEvaluator : PathTSPEvaluatorBase {
+    /// <inheritdoc/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Calculates the distance between two points by using the euclidean distance.
+    /// </summary>
+    /// <param name="x1">The x coordinate of point 1.</param>
+    /// <param name="y1">The y coordinate of point 1.</param>
+    /// <param name="x2">The x coordinate of point 2.</param>
+    /// <param name="y2">The y coordinate of point 2.</param>
+    /// <returns>The euclidean distance between the two points.</returns>
     protected override double CalculateDistance(double x1, double y1, double x2, double y2) {
       return Math.Round(Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)));
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPDistanceMatrixInjectorBase.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPDistanceMatrixInjectorBase.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPDistanceMatrixInjectorBase.cs	(revision 884)
@@ -28,5 +28,12 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Base class to inject the calculated distance matrix of the TSP path into the current scope.
+  /// </summary>
   public abstract class TSPDistanceMatrixInjectorBase : OperatorBase {
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPDistanceMatrixInjectorBase"/> with three variable infos
+    /// (<c>Cities</c>, <c>Coordinates</c> and <c>DistanceMatrix</c>).
+    /// </summary>
     public TSPDistanceMatrixInjectorBase()
       : base() {
@@ -36,4 +43,9 @@
     }
 
+    /// <summary>
+    /// Generates a distance matrix with the distances between all cities in the current path.
+    /// </summary>
+    /// <param name="scope">The current scope with the path.</param>
+    /// <returns><c>null</c>.</returns>
     public override IOperation Apply(IScope scope) {
       int cities = GetVariableValue<IntData>("Cities", scope, true).Data;
@@ -54,4 +66,12 @@
     }
 
+    /// <summary>
+    /// Calculates the distance between two points in the path.
+    /// </summary>
+    /// <param name="x1">The x coordinate of point 1.</param>
+    /// <param name="y1">The y coordinate of point 1.</param>
+    /// <param name="x2">The x coordinate of point 2.</param>
+    /// <param name="y2">The y coordinate of point 2.</param>
+    /// <returns>The calculated distance.</returns>
     protected abstract double CalculateDistance(double x1, double y1, double x2, double y2);
   }
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPInjector.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPInjector.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPInjector.cs	(revision 884)
@@ -29,9 +29,17 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Injects a new TSP in a given scope with all its needed variables....
+  /// </summary>
   public class TSPInjector : OperatorBase {
+    /// <inheritdoc/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPInjector"/> with four variable infos 
+    /// (<c>Maximization</c>, <c>Cities</c>, <c>Coordinates</c> and <c>BestKnownQuality</c>).
+    /// </summary>
     public TSPInjector()
       : base() {
@@ -46,8 +54,17 @@
     }
 
+    /// <summary>
+    /// Creates a new instance of <see cref="TSPInjectorView"/> to display the current instance.
+    /// </summary>
+    /// <returns>The created view as <see cref="TSPInjectorView"/>.</returns>
     public override IView CreateView() {
       return new TSPInjectorView(this);
     }
 
+    /// <summary>
+    /// Adds a new TSP to the given <paramref name="scope"/>, through adding the needed variables.
+    /// </summary>
+    /// <param name="scope">The current scope where to inject the variables.</param>
+    /// <returns><c>null</c>.</returns>
     public override IOperation Apply(IScope scope) {
       scope.AddVariable(new Variable(scope.TranslateName("Maximization"), new BoolData(false)));
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPInjectorView.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPInjectorView.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPInjectorView.cs	(revision 884)
@@ -32,5 +32,13 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Class to represent a <see cref="TSPInjector"/> visually.
+  /// </summary>
   public partial class TSPInjectorView : ViewBase {
+    /// <summary>
+    /// Gets or set the <see cref="TSPInjector"/> to represent visually.
+    /// </summary>        
+    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
+    /// No own data storage present.</remarks>
     public TSPInjector TSPInjector {
       get { return (TSPInjector)Item; }
@@ -38,7 +46,15 @@
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPInjectorView"/>.
+    /// </summary>
     public TSPInjectorView() {
       InitializeComponent();
     }
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPInjectorView"/> with the given 
+    /// <paramref name="tspInjector"/>.
+    /// </summary>
+    /// <param name="tspInjector">The <see cref="TSPInjector"/> to display.</param>
     public TSPInjectorView(TSPInjector tspInjector)
       : this() {
@@ -46,4 +62,8 @@
     }
 
+    /// <summary>
+    /// Removes the event handlers in all children.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
     protected override void RemoveItemEvents() {
       operatorBaseVariableInfosView.Operator = null;
@@ -51,4 +71,8 @@
       base.RemoveItemEvents();
     }
+    /// <summary>
+    /// Adds event handlers in all children.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
     protected override void AddItemEvents() {
       base.AddItemEvents();
@@ -57,4 +81,8 @@
     }
 
+    /// <summary>
+    /// Updates all controls with the latest data of the model.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.UpdateControls"/> of base class <see cref="ViewBase"/>.</remarks>
     protected override void UpdateControls() {
       base.UpdateControls();
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPParser.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPParser.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPParser.cs	(revision 884)
@@ -27,4 +27,7 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Parses a *.tsp file and extracts its information about a TSP.
+  /// </summary>
   public class TSPParser {
     private const int EOF = 0;
@@ -39,16 +42,31 @@
 
     private string myName;
+    /// <summary>
+    /// Gets the name of the parsed TSP.
+    /// </summary>
     public string Name {
       get { return myName; }
     }
     private double[,] myVertices;
+    /// <summary>
+    /// Gets the vertices of the parsed TSP.
+    /// </summary>
     public double[,] Vertices {
       get { return myVertices; }
     }
     private int myWeightType;
+    /// <summary>
+    /// Gets the weight type of the parsed TSP.
+    /// </summary>
     public int WeightType {
       get { return myWeightType; }
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPParser"/> with the given <paramref name="path"/>.
+    /// </summary>
+    /// <exception cref="ArgumentException">Thrown when the input file name is not in TSP format (*.tsp)
+    /// </exception>
+    /// <param name="path">The path where the TSP is stored.</param>
     public TSPParser(String path) {
       if (!path.EndsWith(".tsp"))
@@ -61,4 +79,8 @@
     }
 
+    /// <summary>
+    /// Reads the TSP file and parses the elements.
+    /// </summary>
+    /// <exception cref="InvalidDataException">Thrown when file contains unknown (edge) types.</exception>
     public void Parse() {
       int section = -1;
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPRoundedEuclideanDistanceMatrixInjector.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPRoundedEuclideanDistanceMatrixInjector.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPRoundedEuclideanDistanceMatrixInjector.cs	(revision 884)
@@ -28,9 +28,21 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Injects a distance matrix with euclidean distances of a TSP path into the current scope.
+  /// </summary>
   public class TSPRoundedEuclideanDistanceMatrixInjector : TSPDistanceMatrixInjectorBase {
+    /// <inheritdoc/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Calculates the distance between two points by using the euclidean distance.
+    /// </summary>
+    /// <param name="x1">The x coordinate of point 1.</param>
+    /// <param name="y1">The y coordinate of point 1.</param>
+    /// <param name="x2">The x coordinate of point 2.</param>
+    /// <param name="y2">The y coordinate of point 2.</param>
+    /// <returns>The euclidean distance between the two points.</returns>
     protected override double CalculateDistance(double x1, double y1, double x2, double y2) {
       return Math.Round(Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)));
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPTour.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPTour.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPTour.cs	(revision 884)
@@ -29,6 +29,12 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Represent the tour of a TSP.
+  /// </summary>
   public class TSPTour : ItemBase, IVisualizationItem {
     private DoubleMatrixData myCoordinates;
+    /// <summary>
+    /// Gets or sets the coordinates of the current instance.
+    /// </summary>
     public DoubleMatrixData Coordinates {
       get { return myCoordinates; }
@@ -36,4 +42,7 @@
     }
     private Permutation.Permutation myTour;
+    /// <summary>
+    /// Gets or sets the current permutation/tour of the current instance.
+    /// </summary>
     public Permutation.Permutation Tour {
       get { return myTour; }
@@ -42,5 +51,14 @@
 
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPTour"/>.
+    /// </summary>
     public TSPTour() { }
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPTour"/> with the given <paramref name="coordinates"/>
+    /// and the given <paramref name="tour"/>.
+    /// </summary>
+    /// <param name="coordinates">The coordinates of the TSP.</param>
+    /// <param name="tour">The tour the current instance should represent.</param>
     public TSPTour(DoubleMatrixData coordinates, Permutation.Permutation tour) {
       myCoordinates = coordinates;
@@ -48,5 +66,11 @@
     }
 
-
+    /// <summary>
+    /// Clones the current instance (deep clone).
+    /// </summary>
+    /// <remarks>Uses <see cref="Auxiliary.Clone"/> method of class <see cref="Auxiliary"/> to clone
+    /// the coordinates.</remarks>
+    /// <param name="clonedObjects">Dictionary of all already cloned objects. (Needed to avoid cycles.)</param>
+    /// <returns>The cloned object as <see cref="TSPTour"/>.</returns>
     public override object Clone(IDictionary<Guid, object> clonedObjects) {
       TSPTour clone = (TSPTour)base.Clone(clonedObjects);
@@ -56,14 +80,30 @@
     }
 
+    /// <summary>
+    /// Creates a new instance of <see cref="TSPTourView"/> to display the current instance.
+    /// </summary>
+    /// <returns>The created view as <see cref="TSPTourView"/>.</returns>
     public override IView CreateView() {
       return new TSPTourView(this);
     }
 
+    /// <summary>
+    /// Occurs when the coordinates of the current instance have been changed.
+    /// </summary>
     public event EventHandler CoordinatesChanged;
+    /// <summary>
+    /// Fires a new <c>CoordinatesChanged</c> event.
+    /// </summary>
     protected virtual void OnCoordinatesChanged() {
       if (CoordinatesChanged != null)
         CoordinatesChanged(this, new EventArgs());
     }
+    /// <summary>
+    /// Occurs when the tour of the current instance has been changed.
+    /// </summary>
     public event EventHandler TourChanged;
+    /// <summary>
+    /// Fires a new <c>TourChanged</c> event.
+    /// </summary>
     protected virtual void OnTourChanged() {
       if (TourChanged != null)
@@ -72,4 +112,15 @@
 
     #region Persistence Methods
+    /// <summary>
+    /// Saves the current instance as <see cref="XmlNode"/> in the specified <paramref name="document"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="StorableBase.GetXmlNode"/> of base class <see cref="ItemBase"/>. <br/>
+    /// The coordinates and the tour are saved as a child node with the tag names <c>Coordinates</c> and 
+    /// <c>Tour</c>.</remarks>
+    /// <param name="name">The (tag)name of the <see cref="XmlNode"/>.</param>
+    /// <param name="document">The <see cref="XmlDocument"/> where to save the data.</param>
+    /// <param name="persistedObjects">The dictionary of all already persisted objects. 
+    /// (Needed to avoid cycles.)</param>
+    /// <returns>The saved <see cref="XmlNode"/>.</returns>
     public override XmlNode GetXmlNode(string name, XmlDocument document, IDictionary<Guid, IStorable> persistedObjects) {
       XmlNode node = base.GetXmlNode(name, document, persistedObjects);
@@ -78,4 +129,13 @@
       return node;
     }
+    /// <summary>
+    /// Loads the persisted TSP tour from the specified <paramref name="node"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="StorableBase.Populate"/> of base class 
+    /// <see cref="ItemBase"/>.<br/>
+    /// The coordinates and the tour must be saved as child nodes with the tag names <c>Coordinates</c>
+    /// and <c>Tour</c> (see <see cref="GetXmlNode"/>).</remarks>
+    /// <param name="node">The <see cref="XmlNode"/> where the TSP tour is saved.</param>
+    /// <param name="restoredObjects">A dictionary of all already restored objects. (Needed to avoid cycles.)</param>
     public override void Populate(XmlNode node, IDictionary<Guid, IStorable> restoredObjects) {
       base.Populate(node, restoredObjects);
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPTourInjector.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPTourInjector.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPTourInjector.cs	(revision 884)
@@ -29,9 +29,17 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Injects a new TSP tour in a given scope with all its neccessary variables.
+  /// </summary>
   public class TSPTourInjector : OperatorBase {
+    /// <inheritdoc/>
     public override string Description {
       get { return @"TODO\r\nOperator description still missing ..."; }
     }
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPTourInjector"/> with three variable infos 
+    /// (<c>Coordinates</c>, <c>Permutation</c> and <c>Tour</c>).
+    /// </summary>
     public TSPTourInjector() {
       AddVariableInfo(new VariableInfo("Coordinates", "City coordinates", typeof(DoubleMatrixData), VariableKind.In));
@@ -40,4 +48,10 @@
     }
 
+    /// <summary>
+    /// Adds a new <see cref="TSPTour"/> to the given <paramref name="scope"/> with all 
+    /// its neccessary variables.
+    /// </summary>
+    /// <param name="scope">The current scope where to inject the TSP tour.</param>
+    /// <returns><c>null</c>.</returns>
     public override IOperation Apply(IScope scope) {
       DoubleMatrixData coordinates = GetVariableValue<DoubleMatrixData>("Coordinates", scope, true);
Index: trunk/sources/HeuristicLab.Routing.TSP/TSPTourView.cs
===================================================================
--- trunk/sources/HeuristicLab.Routing.TSP/TSPTourView.cs	(revision 882)
+++ trunk/sources/HeuristicLab.Routing.TSP/TSPTourView.cs	(revision 884)
@@ -33,5 +33,13 @@
 
 namespace HeuristicLab.Routing.TSP {
+  /// <summary>
+  /// Class for the visual representation of a <see cref="TSPTour"/>.
+  /// </summary>
   public partial class TSPTourView : ViewBase {
+    /// <summary>
+    /// Gets or sets the <see cref="TSPTour"/> to represent visually.
+    /// </summary>
+    /// <remarks>Uses property <see cref="ViewBase.Item"/> of base class <see cref="ViewBase"/>.
+    /// No own data storage present.</remarks>
     public TSPTour TSPTour {
       get { return (TSPTour)base.Item; }
@@ -40,8 +48,15 @@
 
 
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPTourView"/> with caption "TSP Tour View".
+    /// </summary>
     public TSPTourView() {
       InitializeComponent();
       Caption = "TSP Tour View";
     }
+    /// <summary>
+    /// Initializes a new instance of <see cref="TSPTourView"/> with the given <paramref name="tspTour"/>.
+    /// </summary>
+    /// <param name="tspTour">The tour to display.</param>
     public TSPTourView(TSPTour tspTour)
       : this() {
@@ -50,4 +65,8 @@
 
 
+    /// <summary>
+    /// Removes all event handlers from the underlying <see cref="TSPTour"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.RemoveItemEvents"/> of base class <see cref="ViewBase"/>.</remarks> 
     protected override void RemoveItemEvents() {
       TSPTour.CoordinatesChanged -= new EventHandler(TSPTour_CoordinatesChanged);
@@ -55,4 +74,8 @@
       base.RemoveItemEvents();
     }
+    /// <summary>
+    /// Adds event handlers to the underlying <see cref="TSPTour"/>.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.AddItemEvents"/> of base class <see cref="ViewBase"/>.</remarks>
     protected override void AddItemEvents() {
       base.AddItemEvents();
@@ -61,4 +84,8 @@
     }
 
+    /// <summary>
+    /// Updates all controls with the latest data of the model.
+    /// </summary>
+    /// <remarks>Calls <see cref="ViewBase.UpdateControls"/> of base class <see cref="ViewBase"/>.</remarks>
     protected override void UpdateControls() {
       base.UpdateControls();
