Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/CodeResources.Designer.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/CodeResources.Designer.cs	(revision 12944)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/CodeResources.Designer.cs	(revision 12944)
@@ -0,0 +1,205 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.42000
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Networks {
+    using System;
+    
+    
+    /// <summary>
+    ///   A strongly-typed resource class, for looking up localized strings, etc.
+    /// </summary>
+    // This class was auto-generated by the StronglyTypedResourceBuilder
+    // class via a tool like ResGen or Visual Studio.
+    // To add or remove a member, edit your .ResX file then rerun ResGen
+    // with the /str option, or rebuild your VS project.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class CodeResources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal CodeResources() {
+        }
+        
+        /// <summary>
+        ///   Returns the cached ResourceManager instance used by this class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HeuristicLab.Networks.CodeResources", typeof(CodeResources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Overrides the current thread's CurrentUICulture property for all
+        ///   resource lookups using this strongly typed resource class.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to #region License Information
+        ////* HeuristicLab
+        /// * Copyright (C) 2002-2014 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  [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string KSPTSPConcurrentControlNetworkCode {
+            get {
+                return ResourceManager.GetString("KSPTSPConcurrentControlNetworkCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to #region License Information
+        ////* HeuristicLab
+        /// * Copyright (C) 2002-2014 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  [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string KSPTSPConnectorCode {
+            get {
+                return ResourceManager.GetString("KSPTSPConnectorCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to #region License Information
+        ////* HeuristicLab
+        /// * Copyright (C) 2002-2014 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  [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string KSPTSPControlCode {
+            get {
+                return ResourceManager.GetString("KSPTSPControlCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to #region License Information
+        ////* HeuristicLab
+        /// * Copyright (C) 2002-2014 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  [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string KSPTSPNetworkCode {
+            get {
+                return ResourceManager.GetString("KSPTSPNetworkCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to using HeuristicLab.Common;
+        ///using HeuristicLab.Core;
+        ///using HeuristicLab.Core.Networks;
+        ///using System;
+        ///using System.Threading;
+        ///
+        ///#region How to use the variable store?
+        ///// use &quot;Vars&quot; to access variables in the variable store (e.g. Vars.x = 5)
+        ///// use &quot;Vars[string]&quot; to access variables using runtime strings (e.g. Vars[&quot;x&quot;] = 5)
+        ///// use &quot;Vars.Contains(string)&quot; to check if a variable exists
+        ///// use &quot;Vars.Clear()&quot; to remove all variables
+        ///// use &quot;foreach (KeyValuePair&lt;string, object&gt; v in Vars) { ... }&quot; to it [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string ProgrammableNetworkCode {
+            get {
+                return ResourceManager.GetString("ProgrammableNetworkCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to using HeuristicLab.Common;
+        ///using HeuristicLab.Core;
+        ///
+        ///#region How to use the variable store?
+        ///// use &quot;Vars&quot; to access variables in the variable store (e.g. Vars.x = 5)
+        ///// use &quot;Vars[string]&quot; to access variables using runtime strings (e.g. Vars[&quot;x&quot;] = 5)
+        ///// use &quot;Vars.Contains(string)&quot; to check if a variable exists
+        ///// use &quot;Vars.Clear()&quot; to remove all variables
+        ///// use &quot;foreach (KeyValuePair&lt;string, object&gt; v in Vars) { ... }&quot; to iterate over all variables
+        ///// use &quot;Variables&quot; to work with IEnumerable&lt;T&gt; ex [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string ProgrammableNetworkItemCode {
+            get {
+                return ResourceManager.GetString("ProgrammableNetworkItemCode", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to using HeuristicLab.Common;
+        ///using HeuristicLab.Core;
+        ///using HeuristicLab.Core.Networks;
+        ///using System;
+        ///using System.Threading;
+        ///
+        ///#region How to use the variable store?
+        ///// use &quot;Vars&quot; to access variables in the variable store (e.g. Vars.x = 5)
+        ///// use &quot;Vars[string]&quot; to access variables using runtime strings (e.g. Vars[&quot;x&quot;] = 5)
+        ///// use &quot;Vars.Contains(string)&quot; to check if a variable exists
+        ///// use &quot;Vars.Clear()&quot; to remove all variables
+        ///// use &quot;foreach (KeyValuePair&lt;string, object&gt; v in Vars) { ... }&quot; to it [rest of string was truncated]&quot;;.
+        /// </summary>
+        internal static string ProgrammableNodeCode {
+            get {
+                return ResourceManager.GetString("ProgrammableNodeCode", resourceCulture);
+            }
+        }
+    }
+}
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/CodeResources.resx
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/CodeResources.resx	(revision 12944)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/CodeResources.resx	(revision 12944)
@@ -0,0 +1,142 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="KSPTSPConcurrentControlNetworkCode" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>KSPTSPConcurrentControlNetworkCode.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="KSPTSPConnectorCode" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>KSPTSPConnectorCode.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="KSPTSPControlCode" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>KSPTSPControlCode.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="KSPTSPNetworkCode" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>KSPTSPNetworkCode.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="ProgrammableNetworkCode" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>Programmable\ProgrammableNetworkCode.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="ProgrammableNetworkItemCode" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>Programmable\ProgrammableNetworkItemCode.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+  <data name="ProgrammableNodeCode" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>Programmable\ProgrammableNodeCode.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
+  </data>
+</root>
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/HeuristicLab.Networks-3.3.csproj
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/HeuristicLab.Networks-3.3.csproj	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/HeuristicLab.Networks-3.3.csproj	(revision 12944)
@@ -205,4 +205,9 @@
   <ItemGroup>
     <Compile Include="AlgorithmNode.cs" />
+    <Compile Include="CodeResources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>CodeResources.resx</DependentUpon>
+    </Compile>
     <Compile Include="ConfigurationPort.cs" />
     <Compile Include="ExecutionPort.cs" />
@@ -214,5 +219,9 @@
     <Compile Include="IExecutionPort.cs" />
     <Compile Include="IUserDefinedMessagePort.cs" />
-    <EmbeddedResource Include="KSPTSPConnectorCode.cs" />
+    <EmbeddedResource Include="CodeResources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>CodeResources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <Compile Include="KSPTSPConnectorCode.cs" />
     <Compile Include="KSPTSPConcurrentControlNetwork.cs" />
     <Compile Include="KSPTSPConnector.cs">
@@ -220,8 +229,8 @@
     </Compile>
     <Compile Include="KSPTSPControl.cs" />
-    <EmbeddedResource Include="KSPTSPControlCode.cs" />
+    <Compile Include="KSPTSPControlCode.cs" />
     <Compile Include="KSPTSPNetwork.cs" />
-    <EmbeddedResource Include="KSPTSPNetworkCode.cs" />
-    <EmbeddedResource Include="KSPTSPConcurrentControlNetworkCode.cs" />
+    <Compile Include="KSPTSPNetworkCode.cs" />
+    <Compile Include="KSPTSPConcurrentControlNetworkCode.cs" />
     <Compile Include="Core\IConnectablePort.cs" />
     <Compile Include="Core\IMessage.cs" />
@@ -258,9 +267,9 @@
     <Compile Include="Programmable\IUserDefinedNode.cs" />
     <Compile Include="Programmable\ProgrammableNetwork.cs" />
-    <EmbeddedResource Include="Programmable\ProgrammableNetworkCode.cs" />
+    <Compile Include="Programmable\ProgrammableNetworkCode.cs" />
     <Compile Include="Programmable\ProgrammableNetworkItem.cs" />
-    <EmbeddedResource Include="Programmable\ProgrammableNetworkItemCode.cs" />
+    <Compile Include="Programmable\ProgrammableNetworkItemCode.cs" />
     <Compile Include="Programmable\ProgrammableNode.cs" />
-    <EmbeddedResource Include="Programmable\ProgrammableNodeCode.cs" />
+    <Compile Include="Programmable\ProgrammableNodeCode.cs" />
     <Compile Include="Programmable\UserDefinedNetwork.cs" />
     <Compile Include="Programmable\UserDefinedNode.cs" />
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPConcurrentControlNetwork.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPConcurrentControlNetwork.cs	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPConcurrentControlNetwork.cs	(revision 12944)
@@ -36,5 +36,5 @@
 
     protected override string CodeTemplate {
-      get { return ReadCodeTemplate("HeuristicLab.Networks.KSPTSPConcurrentControlNetworkCode.cs"); }
+      get { return CodeResources.KSPTSPConcurrentControlNetworkCode; }
     }
 
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPConnector.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPConnector.cs	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPConnector.cs	(revision 12944)
@@ -30,5 +30,5 @@
   public class KSPTSPConnector : ProgrammableNode {
     protected override string CodeTemplate {
-      get { return ReadCodeTemplate("HeuristicLab.Networks.KSPTSPConnectorCode.cs"); }
+      get { return CodeResources.KSPTSPConnectorCode; }
     }
 
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPControl.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPControl.cs	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPControl.cs	(revision 12944)
@@ -58,5 +58,5 @@
 
     protected override string CodeTemplate {
-      get { return ReadCodeTemplate("HeuristicLab.Networks.KSPTSPControlCode.cs"); }
+      get { return CodeResources.KSPTSPControlCode; }
     }
 
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPNetwork.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPNetwork.cs	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/KSPTSPNetwork.cs	(revision 12944)
@@ -31,5 +31,5 @@
   public class KSPTSPNetwork : ProgrammableNetwork {
     protected override string CodeTemplate {
-      get { return ReadCodeTemplate("HeuristicLab.Networks.KSPTSPNetworkCode.cs"); }
+      get { return CodeResources.KSPTSPNetworkCode; }
     }
 
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetwork.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetwork.cs	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetwork.cs	(revision 12944)
@@ -56,5 +56,5 @@
 
     protected override string CodeTemplate {
-      get { return ReadCodeTemplate("HeuristicLab.Networks.Programmable.ProgrammableNetworkCode.cs"); }
+      get { return CodeResources.ProgrammableNetworkCode; }
     }
 
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetworkItem.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetworkItem.cs	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNetworkItem.cs	(revision 12944)
@@ -101,5 +101,5 @@
 
     protected virtual string CodeTemplate {
-      get { return ReadCodeTemplate("HeuristicLab.Networks.Programmable.ProgrammableNetworkItemCode.cs"); }
+      get { return CodeResources.ProgrammableNetworkItemCode; }
     }
     [Storable]
@@ -397,13 +397,4 @@
     }
     #endregion
-
-    #region Helpers
-    protected virtual string ReadCodeTemplate(string templateName) {
-      using (var stream = Assembly.GetAssembly(this.GetType()).GetManifestResourceStream(templateName))
-      using (var reader = new StreamReader(stream)) {
-        return reader.ReadToEnd();
-      }
-    }
-    #endregion
   }
 }
Index: branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNode.cs
===================================================================
--- branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNode.cs	(revision 12943)
+++ branches/OptimizationNetworks/HeuristicLab.Networks/3.3/Programmable/ProgrammableNode.cs	(revision 12944)
@@ -61,5 +61,5 @@
 
     protected override string CodeTemplate {
-      get { return ReadCodeTemplate("HeuristicLab.Networks.Programmable.ProgrammableNodeCode.cs"); }
+      get { return CodeResources.ProgrammableNodeCode; }
     }
 
