Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/INetworkItem.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/INetworkItem.cs	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/INetworkItem.cs	(revision 13077)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -20,5 +20,4 @@
 #endregion
 
-using System;
 using System.Collections.Generic;
 
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/INodeVisualProperties.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/INodeVisualProperties.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/INodeVisualProperties.cs	(revision 13077)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Drawing;
+
+namespace HeuristicLab.Core.Networks {
+  public interface INodeVisualProperties : IVisualProperties {
+    double X { get; set; }
+    double Y { get; set; }
+    double Width { get; set; }
+    double Height { get; set; }
+    Color Color { get; set; }
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IPort.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IPort.cs	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IPort.cs	(revision 13077)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IPortVisualProperties.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IPortVisualProperties.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IPortVisualProperties.cs	(revision 13077)
@@ -0,0 +1,32 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Drawing;
+
+namespace HeuristicLab.Core.Networks {
+  public interface IPortVisualProperties : IVisualProperties {
+    double X { get; set; }
+    double Y { get; set; }
+    double Width { get; set; }
+    double Height { get; }
+    Color Color { get; set; }
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualProperties.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualProperties.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualProperties.cs	(revision 13077)
@@ -0,0 +1,28 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Core.Networks {
+  public interface IVisualProperties {
+    event EventHandler Changed;
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualizableNode.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualizableNode.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualizableNode.cs	(revision 13077)
@@ -0,0 +1,26 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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
+
+namespace HeuristicLab.Core.Networks {
+  public interface IVisualizableNode : INode {
+    INodeVisualProperties VisualProperties { get; }
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualizablePort.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualizablePort.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/IVisualizablePort.cs	(revision 13077)
@@ -0,0 +1,26 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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
+
+namespace HeuristicLab.Core.Networks {
+  public interface IVisualizablePort {
+    IPortVisualProperties VisualProperties { get; }
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/NetworkItem.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/NetworkItem.cs	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/NetworkItem.cs	(revision 13077)
@@ -20,10 +20,9 @@
 #endregion
 
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System;
 using System.Collections.Generic;
 using System.Drawing;
 using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Core.Networks {
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/Node.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/Node.cs	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/Node.cs	(revision 13077)
@@ -20,14 +20,14 @@
 #endregion
 
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using System.Collections.Generic;
 using System.Drawing;
 using System.Linq;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 
 namespace HeuristicLab.Core.Networks {
   [Item("Node", "Abstract base class for nodes of a network.")]
   [StorableClass]
-  public abstract class Node : NetworkItem, INode {
+  public abstract class Node : NetworkItem, IVisualizableNode {
     public static new Image StaticItemImage {
       get { return HeuristicLab.Common.Resources.VSImageLibrary.RadialChart; }
@@ -55,4 +55,16 @@
         if (readOnlyPorts == null) readOnlyPorts = ports.AsReadOnly();
         return readOnlyPorts;
+      }
+    }
+
+    public string VisualName { get { return Name; } }
+
+    [Storable]
+    private INodeVisualProperties visualProperties;
+    public INodeVisualProperties VisualProperties {
+      get {
+        if (visualProperties == null)
+          visualProperties = new NodeVisualProperties();
+        return visualProperties;
       }
     }
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/NodeVisualProperties.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/NodeVisualProperties.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/NodeVisualProperties.cs	(revision 13077)
@@ -0,0 +1,108 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Core.Networks {
+  [StorableClass]
+  public sealed class NodeVisualProperties : VisualProperties, INodeVisualProperties {
+    [Storable]
+    private double x;
+    public double X {
+      get { return x; }
+      set {
+        if (x == value) return;
+        x = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private double y;
+    public double Y {
+      get { return y; }
+      set {
+        if (y == value) return;
+        y = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private double width;
+    public double Width {
+      get { return width; }
+      set {
+        if (width == value) return;
+        width = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private double height;
+    public double Height {
+      get { return height; }
+      set {
+        if (height == value) return;
+        height = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private Color color;
+    public Color Color {
+      get { return color; }
+      set {
+        if (color == value) return;
+        color = value;
+        OnChanged();
+      }
+    }
+
+    #region Constructors & Cloning
+    [StorableConstructor]
+    private NodeVisualProperties(bool deserializing) : base(deserializing) { }
+    private NodeVisualProperties(NodeVisualProperties original, Cloner cloner)
+      : base(original, cloner) {
+      x = original.x;
+      y = original.y;
+      width = original.width;
+      height = original.height;
+      color = original.color;
+    }
+
+    public NodeVisualProperties() {
+      x = double.NaN;
+      y = double.NaN;
+      width = double.NaN;
+      height = double.NaN;
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new NodeVisualProperties(this, cloner);
+    }
+    #endregion
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/Port.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/Port.cs	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/Port.cs	(revision 13077)
@@ -20,12 +20,12 @@
 #endregion
 
+using System.Drawing;
 using HeuristicLab.Common;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Drawing;
 
 namespace HeuristicLab.Core.Networks {
   [Item("Port", "Abstract base class for ports of network nodes.")]
   [StorableClass]
-  public abstract class Port : NetworkItem, IPort {
+  public abstract class Port : NetworkItem, IVisualizablePort {
     public static new Image StaticItemImage {
       get { return HeuristicLab.Common.Resources.VSImageLibrary.Interface; }
@@ -40,4 +40,14 @@
     }
 
+    [Storable]
+    private IPortVisualProperties visualProperties;
+    public IPortVisualProperties VisualProperties {
+      get {
+        if (visualProperties == null)
+          visualProperties = new PortVisualProperties();
+        return visualProperties;
+      }
+    }
+
     [StorableConstructor]
     protected Port(bool deserializing) : base(deserializing) { }
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/PortVisualProperties.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/PortVisualProperties.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/PortVisualProperties.cs	(revision 13077)
@@ -0,0 +1,108 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2015 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.Drawing;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Core.Networks {
+  [StorableClass]
+  public sealed class PortVisualProperties : VisualProperties, IPortVisualProperties {
+    [Storable]
+    private double x;
+    public double X {
+      get { return x; }
+      set {
+        if (x == value) return;
+        x = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private double y;
+    public double Y {
+      get { return y; }
+      set {
+        if (y == value) return;
+        y = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private double width;
+    public double Width {
+      get { return width; }
+      set {
+        if (width == value) return;
+        width = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private double height;
+    public double Height {
+      get { return height; }
+      set {
+        if (height == value) return;
+        height = value;
+        OnChanged();
+      }
+    }
+
+    [Storable]
+    private Color color;
+    public Color Color {
+      get { return color; }
+      set {
+        if (color == value) return;
+        color = value;
+        OnChanged();
+      }
+    }
+
+    #region Constructors & Cloning
+    [StorableConstructor]
+    private PortVisualProperties(bool deserializing) : base(deserializing) { }
+    private PortVisualProperties(PortVisualProperties original, Cloner cloner)
+      : base(original, cloner) {
+      x = original.x;
+      y = original.y;
+      width = original.width;
+      height = original.height;
+      color = original.color;
+    }
+
+    public PortVisualProperties() {
+      x = double.NaN;
+      y = double.NaN;
+      width = double.NaN;
+      height = double.NaN;
+    }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new PortVisualProperties(this, cloner);
+    }
+    #endregion
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/VisualProperties.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/VisualProperties.cs	(revision 13077)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Core/VisualProperties.cs	(revision 13077)
@@ -0,0 +1,27 @@
+﻿using System;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Core.Networks {
+  [StorableClass]
+  public class VisualProperties : DeepCloneable, IVisualProperties {
+    #region Constructors & Cloning
+    [StorableConstructor]
+    protected VisualProperties(bool deserializing) : base() { }
+    protected VisualProperties(VisualProperties original, Cloner cloner)
+      : base(original, cloner) { }
+
+    public VisualProperties() { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new VisualProperties(this, cloner);
+    }
+    #endregion
+
+    public event EventHandler Changed;
+    protected virtual void OnChanged() {
+      var handler = Changed;
+      if (handler != null) handler(this, EventArgs.Empty);
+    }
+  }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/HeuristicLab.Networks-3.3.csproj
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/HeuristicLab.Networks-3.3.csproj	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/HeuristicLab.Networks-3.3.csproj	(revision 13077)
@@ -80,8 +80,4 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="HeuristicLab.Algorithms.CMAEvolutionStrategy-3.3">
-      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Algorithms.CMAEvolutionStrategy-3.3.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
     <Reference Include="HeuristicLab.Algorithms.DataAnalysis-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -120,8 +116,4 @@
     <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3">
       <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.PermutationEncoding-3.3.dll</HintPath>
-      <Private>False</Private>
-    </Reference>
-    <Reference Include="HeuristicLab.Encodings.RealVectorEncoding-3.3">
-      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.RealVectorEncoding-3.3.dll</HintPath>
       <Private>False</Private>
     </Reference>
@@ -211,4 +203,12 @@
     </Compile>
     <Compile Include="ConfigurationPort.cs" />
+    <Compile Include="Core\INodeVisualProperties.cs" />
+    <Compile Include="Core\IPortVisualProperties.cs" />
+    <Compile Include="Core\IVisualizableNode.cs" />
+    <Compile Include="Core\IVisualizablePort.cs" />
+    <Compile Include="Core\IVisualProperties.cs" />
+    <Compile Include="Core\NodeVisualProperties.cs" />
+    <Compile Include="Core\PortVisualProperties.cs" />
+    <Compile Include="Core\VisualProperties.cs" />
     <Compile Include="ExecutionPort.cs" />
     <Compile Include="FeatureSelection Network\FeatureSelectionConnector.cs" />
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Plugin.cs.frame
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Plugin.cs.frame	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Plugin.cs.frame	(revision 13077)
@@ -28,4 +28,7 @@
   [Plugin("HeuristicLab.Networks", "3.3.11.$WCREV$")]
   [PluginFile("HeuristicLab.Networks-3.3.dll", PluginFileType.Assembly)]
+  [PluginDependency("HeuristicLab.Algorithms.DataAnalysis", "3.4")]
+  [PluginDependency("HeuristicLab.Algorithms.GeneticAlgorithm", "3.3")]
+  [PluginDependency("HeuristicLab.Analysis", "3.3")]
   [PluginDependency("HeuristicLab.Collections", "3.3")]
   [PluginDependency("HeuristicLab.Common", "3.3")]
@@ -37,6 +40,15 @@
   [PluginDependency("HeuristicLab.Operators", "3.3")]
   [PluginDependency("HeuristicLab.Optimization", "3.3")]
+  [PluginDependency("HeuristicLab.Parameters", "3.3")]
   [PluginDependency("HeuristicLab.Persistence", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Binary", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Knapsack", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.TravelingSalesman", "3.3")]
+  [PluginDependency("HeuristicLab.Random", "3.3")]
   [PluginDependency("HeuristicLab.Scripting", "3.3")]
+  [PluginDependency("HeuristicLab.Selection", "3.3")]
   public class HeuristicLabNetworksPlugin : PluginBase {
   }
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetworkItem.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetworkItem.cs	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetworkItem.cs	(revision 13077)
@@ -20,10 +20,4 @@
 #endregion
 
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Core.Networks;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Scripting;
-using Microsoft.CSharp;
 using System;
 using System.CodeDom.Compiler;
@@ -34,4 +28,10 @@
 using System.Reflection;
 using System.Text;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Core.Networks;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Scripting;
+using Microsoft.CSharp;
 
 namespace HeuristicLab.Networks.Programmable {
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNode.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNode.cs	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNode.cs	(revision 13077)
@@ -20,17 +20,17 @@
 #endregion
 
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Threading;
 using HeuristicLab.Common;
 using HeuristicLab.Core;
 using HeuristicLab.Core.Networks;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using System.Collections.Generic;
-using System.Drawing;
-using System.Linq;
-using System.Threading;
 
 namespace HeuristicLab.Networks.Programmable {
   [Item("ProgrammableNode", "Abstract base class for programmable nodes of a network.")]
   [StorableClass]
-  public abstract class ProgrammableNode : ProgrammableNetworkItem, IProgrammableNode {
+  public abstract class ProgrammableNode : ProgrammableNetworkItem, IProgrammableNode, IVisualizableNode {
     public static new Image StaticItemImage {
       get { return HeuristicLab.Common.Resources.VSImageLibrary.RadialChart; }
@@ -58,4 +58,16 @@
       }
     }
+
+    public string VisualName { get { return Name; } }
+
+    [Storable]
+    private INodeVisualProperties visualProperties;
+    public INodeVisualProperties VisualProperties {
+      get {
+        if (visualProperties == null)
+          visualProperties = new NodeVisualProperties();
+        return visualProperties;
+      }
+    }
     #endregion
 
@@ -115,4 +127,10 @@
       IKeyedItemCollection<string, IPort> INode.Ports {
         get { return Ports; }
+      }
+
+      public string VisualName { get { return Context.VisualName; } }
+
+      public INodeVisualProperties VisualProperties {
+        get { return Context.VisualProperties; }
       }
       #endregion
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Properties/AssemblyInfo.cs.frame
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Properties/AssemblyInfo.cs.frame	(revision 12945)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Properties/AssemblyInfo.cs.frame	(revision 13077)
@@ -1,5 +1,5 @@
 #region License Information
 /* HeuristicLab
- * Copyright (C) 2002-2014 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
  *
  * This file is part of HeuristicLab.
@@ -27,10 +27,10 @@
 // set of attributes. Change these attribute values to modify the information
 // associated with an assembly.
-[assembly: AssemblyTitle("HeuristicLab.Optimization.Networks")]
+[assembly: AssemblyTitle("HeuristicLab.Networks")]
 [assembly: AssemblyDescription("HeuristicLab optimization networks classes")]
 [assembly: AssemblyConfiguration("")]
 [assembly: AssemblyCompany("")]
 [assembly: AssemblyProduct("HeuristicLab")]
-[assembly: AssemblyCopyright("(c) 2002-2014 HEAL")]
+[assembly: AssemblyCopyright("(c) 2002-2015 HEAL")]
 [assembly: AssemblyTrademark("")]
 [assembly: AssemblyCulture("")]
@@ -51,6 +51,7 @@
 //      Revision
 //
-// You can specify all the values or you can default the Revision and Build Numbers 
+// You can specify all the values or you can default the Build and Revision Numbers 
 // by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.11.$WCREV$")]
+[assembly: AssemblyFileVersion("3.3.12.$WCREV$")]
