Index: branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/JSMEncodingView.cs	(revision 6266)
@@ -31,6 +31,6 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.Core;
-using HeuristicLab.Problems.Scheduling.Encodings.JobSequenceMatrix;
 using HeuristicLab.Encodings.PermutationEncoding;
+using HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling.JobSequenceMatrix;
 
 namespace HeuristicLab.Problems.Scheduling.Views {
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Plugin.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Plugin.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Plugin.cs	(revision 6266)
@@ -23,5 +23,5 @@
 
 namespace HeuristicLab.Problems.Scheduling.Views {
-  [Plugin("HeuristicLab.Problems.Scheduling.Views", "3.3.3.6177")]
+  [Plugin("HeuristicLab.Problems.Scheduling.Views", "3.3.3.6260")]
   [PluginFile("HeuristicLab.Problems.Scheduling.Views-3.3.dll", PluginFileType.Assembly)]
   public class HeuristicLabProblemsSchedulingViewsPlugin : PluginBase {
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Properties/AssemblyInfo.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Properties/AssemblyInfo.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling.Views/3.3/Properties/AssemblyInfo.cs	(revision 6266)
@@ -53,3 +53,3 @@
 // by using the '*' as shown below:
 [assembly: AssemblyVersion("3.3.0.0")]
-[assembly: AssemblyFileVersion("3.3.0.6177")]
+[assembly: AssemblyFileVersion("3.3.0.6260")]
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Analyzers/BestSchedulingSolutionAnalyzer.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Analyzers/BestSchedulingSolutionAnalyzer.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Analyzers/BestSchedulingSolutionAnalyzer.cs	(revision 6266)
@@ -36,5 +36,5 @@
   [Item("BestSchedulingSolutionAnalyzer", "An operator for analyzing the best solution of Scheduling Problems given in schedule-representation.")]
   [StorableClass]
-  public sealed class BestSchedulingSolutionAnalyzer : JSSPOperator, IAnalyzer, IStochasticOperator {
+  public sealed class BestSchedulingSolutionAnalyzer : SchedulingAnalyzer, IStochasticOperator {
     [StorableConstructor]
     private BestSchedulingSolutionAnalyzer(bool deserializing) : base(deserializing) { }
@@ -46,5 +46,4 @@
     }
 
-
     public ILookupParameter<IRandom> RandomParameter {
       get { return (LookupParameter<IRandom>)Parameters["Random"]; }
@@ -54,44 +53,9 @@
     }
 
-
-    public LookupParameter<BoolValue> MaximizationParameter {
-      get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; }
-    }
-    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
-    }
-    public LookupParameter<Schedule> BestSolutionParameter {
-      get { return (LookupParameter<Schedule>)Parameters["BestSolution"]; }
-    }
-    public ValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
-    }
-    public LookupParameter<DoubleValue> BestKnownQualityParameter {
-      get { return (LookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
-    }
-    public LookupParameter<Schedule> BestKnownSolutionParameter {
-      get { return (LookupParameter<Schedule>)Parameters["BestKnownSolution"]; }
-    }
-    public ScopeTreeLookupParameter<Schedule> SchedulingSolutionParameter {
-      get { return (ScopeTreeLookupParameter<Schedule>)Parameters["DecodedSchedulingSolution"]; }
+    public BestSchedulingSolutionAnalyzer () : base () {
+      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator."));
     }
 
-
-
-    public BestSchedulingSolutionAnalyzer () {
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator."));
-
-      Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem."));
-      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the JSSP solutions which should be analyzed."));
-      Parameters.Add(new ScopeTreeLookupParameter<Schedule>("DecodedSchedulingSolution", "The solutions from which the best solution has to be chosen from."));
-      Parameters.Add(new LookupParameter<Schedule>("BestSolution", "The best JSSP solution."));
-      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the best JSSP solution should be stored."));
-      Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this JSSP instance."));
-      Parameters.Add(new LookupParameter<Schedule>("BestKnownSolution", "The best known solution of this JSSP instance."));
-    }
-
-
     public override IOperation Apply() {
-      ItemList<JSSPJob> jobs = Jobs;
       ItemArray<DoubleValue> qualities = QualityParameter.ActualValue;
       ItemArray<Schedule> solutions = SchedulingSolutionParameter.ActualValue;
@@ -128,5 +92,4 @@
       return base.Apply();
     }
-
   }
 }
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Analyzers/SchedulingAnalyzer.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Analyzers/SchedulingAnalyzer.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Analyzers/SchedulingAnalyzer.cs	(revision 6266)
@@ -0,0 +1,78 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Data;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Problems.Scheduling.Analyzers {
+  [Item("Scheduling Analyzer", "Represents the generalized form of Analyzers for Scheduling Problems.")]
+  [StorableClass]
+  public abstract class SchedulingAnalyzer : SingleSuccessorOperator, IAnalyzer {
+    [StorableConstructor]
+    protected SchedulingAnalyzer(bool deserializing) : base(deserializing) { }
+    protected SchedulingAnalyzer(SchedulingAnalyzer original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    #region Parameter Properties
+    public LookupParameter<BoolValue> MaximizationParameter {
+      get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; }
+    }
+    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
+      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
+    }
+    public LookupParameter<Schedule> BestSolutionParameter {
+      get { return (LookupParameter<Schedule>)Parameters["BestSolution"]; }
+    }
+    public ValueLookupParameter<ResultCollection> ResultsParameter {
+      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
+    }
+    public LookupParameter<DoubleValue> BestKnownQualityParameter {
+      get { return (LookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
+    }
+    public LookupParameter<Schedule> BestKnownSolutionParameter {
+      get { return (LookupParameter<Schedule>)Parameters["BestKnownSolution"]; }
+    }
+    public ScopeTreeLookupParameter<Schedule> SchedulingSolutionParameter {
+      get { return (ScopeTreeLookupParameter<Schedule>)Parameters["DecodedSchedulingSolution"]; }
+    }
+    #endregion
+
+    public SchedulingAnalyzer () : base() {
+      Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem is a maximization problem."));
+      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the JSSP solutions which should be analyzed."));
+      Parameters.Add(new ScopeTreeLookupParameter<Schedule>("DecodedSchedulingSolution", "The solutions from which the best solution has to be chosen from."));
+      Parameters.Add(new LookupParameter<Schedule>("BestSolution", "The best JSSP solution."));
+      Parameters.Add(new ValueLookupParameter<ResultCollection>("Results", "The result collection where the best JSSP solution should be stored."));
+      Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "The quality of the best known solution of this JSSP instance."));
+      Parameters.Add(new LookupParameter<Schedule>("BestKnownSolution", "The best known solution of this JSSP instance."));
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPCreator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPCreator.cs	(revision 6264)
+++ 	(revision )
@@ -1,58 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Problems.Scheduling.Encodings;
-using HeuristicLab.Problems.Scheduling.Interfaces;
-
-namespace HeuristicLab.Problems.Scheduling.Encodings {
-  [Item("JobShop Scheduling Problem Creator", "Represents the generalized form of creators for JobShop Scheduling Problems.")]
-  [StorableClass]
-  public abstract class JSSPCreator<T> :JSSPOperator, ISchedulingCreator where T : Item, ISchedulingEncoding{
-    [StorableConstructor]
-    protected JSSPCreator(bool deserializing) : base(deserializing) { }
-    protected JSSPCreator(JSSPCreator<T> original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    
-    public ILookupParameter<T> SchedulingSolutionParameter {
-      get { return (ILookupParameter<T>)Parameters["SchedulingSolution"]; }
-    }
-
-    public JSSPCreator() : base (){
-      Parameters.Add(new LookupParameter<T>("SchedulingSolution", "The new scheduling solution."));
-    }
-
-    protected abstract T CreateSolution();
-
-    public override IOperation Apply() {
-      SchedulingSolutionParameter.ActualValue = CreateSolution();
-      return base.Apply();
-    } 
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPCrossover.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPCrossover.cs	(revision 6264)
+++ 	(revision )
@@ -1,61 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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 HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.Scheduling.Interfaces;
-using HeuristicLab.Optimization;
-
-namespace HeuristicLab.Problems.Scheduling.Encodings {
-  [Item("JSSPCrossover", "A scheduling crossover operation.")]
-  [StorableClass]
-  public abstract class JSSPCrossover<T> : JSSPOperator, ISchedulingCrossover, IStochasticOperator where T : Item, ISchedulingEncoding {
-    #region IJSSPCrossover Members
-    public ILookupParameter<ItemArray<T>> ParentsParameter {
-      get { return (ScopeTreeLookupParameter<T>)Parameters["Parents"]; }
-    }
-
-    public ILookupParameter<T> ChildParameter {
-      get { return (ILookupParameter<T>)Parameters["Child"]; }
-    }
-    #endregion
-
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
-    }
-
-    [StorableConstructor]
-    protected JSSPCrossover(bool deserializing) : base(deserializing) { }
-    protected JSSPCrossover(JSSPCrossover<T> original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public JSSPCrossover()
-      : base() {
-        Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
-      Parameters.Add(new ScopeTreeLookupParameter<T>("Parents", "The parent solution which should be crossed."));
-      ParentsParameter.ActualName = "SchedulingSolution";
-      Parameters.Add(new LookupParameter<T>("Child", "The child solution resulting from the crossover."));
-      ChildParameter.ActualName = "SchedulingSolution";
-    }
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPDecoder.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPDecoder.cs	(revision 6264)
+++ 	(revision )
@@ -1,61 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Common;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.Scheduling.Interfaces;
-
-namespace HeuristicLab.Problems.Scheduling.Encodings {
-  public abstract class JSSPDecoder<T> : JSSPOperator, ISchedulingDecoder where T : Item, ISchedulingEncoding {
-    [StorableConstructor]
-    protected JSSPDecoder(bool deserializing) : base(deserializing) { }
-    protected JSSPDecoder(JSSPDecoder<T> original, Cloner cloner)
-      : base(original, cloner) {
-    }
-
-    public ILookupParameter<T> SchedulingSolutionParameter {
-      get { return (ILookupParameter<T>)Parameters["SchedulingSolution"]; }
-    }
-    public ILookupParameter<Schedule> DecodedSchedulingSolutionParameter {
-      get { return (ILookupParameter<Schedule>)Parameters["DecodedSchedulingSolution"]; }
-    }
-
-    public JSSPDecoder()
-      : base() {
-      Parameters.Add(new LookupParameter<T>("SchedulingSolution", "The new scheduling solution represented as encoding."));
-      Parameters.Add(new LookupParameter<Schedule>("DecodedSchedulingSolution", "The decoded scheduling solution represented as generalized schedule."));
-    }
-
-    public abstract Schedule CreateScheduleFromEncoding(T solution);
-
-    public override IOperation Apply() {
-      Schedule result = CreateScheduleFromEncoding(SchedulingSolutionParameter.ActualValue);
-      DecodedSchedulingSolutionParameter.ActualValue = result;
-      return base.Apply();
-    } 
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPEncodingTypes.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPEncodingTypes.cs	(revision 6264)
+++ 	(revision )
@@ -1,12 +1,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace HeuristicLab.Problems.Scheduling.Encodings {
-  public enum JSSPEncodingTypes {
-    JSMEncoding,
-    PRVEncoding,
-    PWREncoding
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPManipulator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPManipulator.cs	(revision 6264)
+++ 	(revision )
@@ -1,57 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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 HeuristicLab.Common;
-using HeuristicLab.Core;
-using HeuristicLab.Parameters;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Problems.Scheduling.Interfaces;
-using HeuristicLab.Optimization;
-
-namespace HeuristicLab.Problems.Scheduling.Encodings {
-  [Item("JSSPManipulator", "A JSSP manipulation operation.")]
-  [StorableClass]
-  public abstract class JSSPManipulator<T> : JSSPOperator, ISchedulingManipulator, IStochasticOperator where T : Item, ISchedulingEncoding {
-    #region IJSSPManipulator Members
-
-    public ILookupParameter<T> SchedulingSolutionParameter {
-      get { return (ILookupParameter<T>)Parameters["SchedulingSolution"]; }
-    }
-
-    #endregion
-
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
-    }
-
-    [StorableConstructor]
-    protected JSSPManipulator(bool deserializing) : base(deserializing) { }
-    protected JSSPManipulator(JSSPManipulator<T> original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public JSSPManipulator()
-      : base() {
-        Parameters.Add(new LookupParameter<T>("SchedulingSolution", "The JSSP solution to be manipulated."));
-        Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
-    }
-
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPOperator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JSSPOperator.cs	(revision 6264)
+++ 	(revision )
@@ -1,61 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Operators;
-using HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Common;
-using HeuristicLab.Parameters;
-using HeuristicLab.Data;
-using HeuristicLab.Problems.Scheduling.Interfaces;
-
-namespace HeuristicLab.Problems.Scheduling.Encodings {
-  [Item("SchedulingOperator", "A scheduling operator.")]
-  [StorableClass]
-  public abstract class JSSPOperator : SingleSuccessorOperator, ISchedulingOperator{
-    [StorableConstructor]
-    protected JSSPOperator(bool deserializing) : base(deserializing) { }
-    protected JSSPOperator(JSSPOperator original, Cloner cloner)
-      : base(original, cloner) {
-    }
-
-    #region Parameter Properties
-    public ILookupParameter<ItemList<JSSPJob>> JobsParameter {
-      get { return (ILookupParameter<ItemList<JSSPJob>>)Parameters["Jobs"]; }
-    }
-    #endregion
-
-    #region Properties
-    public ItemList<JSSPJob> Jobs {
-      get { return JobsParameter.ActualValue; }
-    }
-    #endregion
-
-    public JSSPOperator()
-      : base() {
-      Parameters.Add(new LookupParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance."));
-    }
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPCreator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPCreator.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPCreator.cs	(revision 6266)
@@ -0,0 +1,58 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling {
+  [Item("JobShopScheduling Problem Encoding Creator", "Represents the generalized form of creators for JobShop Scheduling Problems.")]
+  [StorableClass]
+  public abstract class JSSPCreator<T> : SchedulingCreator<T>, IJSSPOperator where T : Item, IJSSPEncoding {
+    [StorableConstructor]
+    protected JSSPCreator(bool deserializing) : base(deserializing) { }
+    protected JSSPCreator(JSSPCreator<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    #region Parameter Properties
+    public ILookupParameter<ItemList<JSSPJob>> JobsParameter {
+      get { return (ILookupParameter<ItemList<JSSPJob>>)Parameters["Jobs"]; }
+    }
+    #endregion
+    #region Properties
+    public ItemList<JSSPJob> Jobs {
+      get { return JobsParameter.ActualValue; }
+    }
+    #endregion
+
+    public JSSPCreator()
+      : base() {
+      Parameters.Add(new LookupParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance."));
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPCrossover.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPCrossover.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPCrossover.cs	(revision 6266)
@@ -0,0 +1,59 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+
+//ATTENTION: This class is never used because most crossover operators dont require specific information about the problem..
+namespace HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling {
+  [Item("JobShopScheduling Problem Crossover", "Represents the generalized form of crossover for JobShop Scheduling Problems.")]
+  [StorableClass]
+  public abstract class JSSPCrossover<T> : SchedulingCrossover<T>, IJSSPOperator where T : Item, IJSSPEncoding {
+    [StorableConstructor]
+    protected JSSPCrossover(bool deserializing) : base(deserializing) { }
+    protected JSSPCrossover(JSSPCrossover<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    #region Parameter Properties
+    public ILookupParameter<ItemList<JSSPJob>> JobsParameter {
+      get { return (ILookupParameter<ItemList<JSSPJob>>)Parameters["Jobs"]; }
+    }
+    #endregion
+    #region Properties
+    public ItemList<JSSPJob> Jobs {
+      get { return JobsParameter.ActualValue; }
+    }
+    #endregion
+
+    public JSSPCrossover()
+      : base() {
+      Parameters.Add(new LookupParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance."));
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPDecoder.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPDecoder.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPDecoder.cs	(revision 6266)
@@ -0,0 +1,58 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+
+namespace HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling {
+  [Item("JobShopScheduling Problem Decoder", "Represents the generalized form of decoder for JobShop Scheduling Problems.")]
+  [StorableClass]
+  public abstract class JSSPDecoder<T> : SchedulingDecoder<T>, IJSSPOperator where T : Item, IJSSPEncoding {
+    [StorableConstructor]
+    protected JSSPDecoder(bool deserializing) : base(deserializing) { }
+    protected JSSPDecoder(JSSPDecoder<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    #region Parameter Properties
+    public ILookupParameter<ItemList<JSSPJob>> JobsParameter {
+      get { return (ILookupParameter<ItemList<JSSPJob>>)Parameters["Jobs"]; }
+    }
+    #endregion
+    #region Properties
+    public ItemList<JSSPJob> Jobs {
+      get { return JobsParameter.ActualValue; }
+    }
+    #endregion
+
+    public JSSPDecoder()
+      : base() {
+      Parameters.Add(new LookupParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance."));
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPEncodingTypes.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPEncodingTypes.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPEncodingTypes.cs	(revision 6266)
@@ -0,0 +1,12 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling {
+  public enum JSSPEncodingTypes {
+    JSMEncoding,
+    PRVEncoding,
+    PWREncoding
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPManipulator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPManipulator.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/JobShopScheduling/JSSPManipulator.cs	(revision 6266)
@@ -0,0 +1,59 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+
+//ATTENTION: This class is never used because most manipulation operators dont require specific information about the problem..
+namespace HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling {
+  [Item("JobShopScheduling Problem Manipulator", "Represents the generalized form of decoder for JobShop Scheduling Problems.")]
+  [StorableClass]
+  public abstract class JSSPManipulator<T> : SchedulingManipulator<T>, IJSSPOperator where T : Item, IJSSPEncoding {
+    [StorableConstructor]
+    protected JSSPManipulator(bool deserializing) : base(deserializing) { }
+    protected JSSPManipulator(JSSPManipulator<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    #region Parameter Properties
+    public ILookupParameter<ItemList<JSSPJob>> JobsParameter {
+      get { return (ILookupParameter<ItemList<JSSPJob>>)Parameters["Jobs"]; }
+    }
+    #endregion
+    #region Properties
+    public ItemList<JSSPJob> Jobs {
+      get { return JobsParameter.ActualValue; }
+    }
+    #endregion
+
+    public JSSPManipulator()
+      : base() {
+      Parameters.Add(new LookupParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance."));
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingCreator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingCreator.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingCreator.cs	(revision 6266)
@@ -0,0 +1,59 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Problems.Scheduling.Encodings;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.Problems.Scheduling.Encodings {
+  [Item("Scheduling Problem Encoding Creator", "Represents the generalized form of creators for Scheduling Problems.")]
+  [StorableClass]
+  public abstract class SchedulingCreator<T> : SingleSuccessorOperator, ISchedulingCreator where T : Item, ISchedulingEncoding {
+    [StorableConstructor]
+    protected SchedulingCreator(bool deserializing) : base(deserializing) { }
+    protected SchedulingCreator(SchedulingCreator<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    
+    public ILookupParameter<T> SchedulingSolutionParameter {
+      get { return (ILookupParameter<T>)Parameters["SchedulingSolution"]; }
+    }
+
+    public SchedulingCreator() : base (){
+      Parameters.Add(new LookupParameter<T>("SchedulingSolution", "The new scheduling solution."));
+    }
+
+    protected abstract T CreateSolution();
+
+    public override IOperation Apply() {
+      SchedulingSolutionParameter.ActualValue = CreateSolution();
+      return base.Apply();
+    } 
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingCrossover.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingCrossover.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingCrossover.cs	(revision 6266)
@@ -0,0 +1,62 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Optimization;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.Problems.Scheduling.Encodings {
+  [Item("Scheduling Crossover", "A scheduling crossover operation.")]
+  [StorableClass]
+  public abstract class SchedulingCrossover<T> : SingleSuccessorOperator, ISchedulingCrossover, IStochasticOperator where T : Item, ISchedulingEncoding {
+    #region ISchedulingCrossover Members
+    public ILookupParameter<ItemArray<T>> ParentsParameter {
+      get { return (ScopeTreeLookupParameter<T>)Parameters["Parents"]; }
+    }
+
+    public ILookupParameter<T> ChildParameter {
+      get { return (ILookupParameter<T>)Parameters["Child"]; }
+    }
+    #endregion
+
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
+    }
+
+    [StorableConstructor]
+    protected SchedulingCrossover(bool deserializing) : base(deserializing) { }
+    protected SchedulingCrossover(SchedulingCrossover<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public SchedulingCrossover()
+      : base() {
+        Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
+      Parameters.Add(new ScopeTreeLookupParameter<T>("Parents", "The parent solution which should be crossed."));
+      ParentsParameter.ActualName = "SchedulingSolution";
+      Parameters.Add(new LookupParameter<T>("Child", "The child solution resulting from the crossover."));
+      ChildParameter.ActualName = "SchedulingSolution";
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingDecoder.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingDecoder.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingDecoder.cs	(revision 6266)
@@ -0,0 +1,64 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Common;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.Problems.Scheduling.Encodings {
+  [Item("Scheduling Decoder", "A scheduling decoder operator.")]
+  [StorableClass]
+  public abstract class SchedulingDecoder<T> : SingleSuccessorOperator, ISchedulingDecoder where T : Item, ISchedulingEncoding {
+    [StorableConstructor]
+    protected SchedulingDecoder(bool deserializing) : base(deserializing) { }
+    protected SchedulingDecoder(SchedulingDecoder<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public ILookupParameter<T> SchedulingSolutionParameter {
+      get { return (ILookupParameter<T>)Parameters["SchedulingSolution"]; }
+    }
+    public ILookupParameter<Schedule> DecodedSchedulingSolutionParameter {
+      get { return (ILookupParameter<Schedule>)Parameters["DecodedSchedulingSolution"]; }
+    }
+
+    public SchedulingDecoder()
+      : base() {
+      Parameters.Add(new LookupParameter<T>("SchedulingSolution", "The new scheduling solution represented as encoding."));
+      Parameters.Add(new LookupParameter<Schedule>("DecodedSchedulingSolution", "The decoded scheduling solution represented as generalized schedule."));
+    }
+
+    public abstract Schedule CreateScheduleFromEncoding(T solution);
+
+    public override IOperation Apply() {
+      Schedule result = CreateScheduleFromEncoding(SchedulingSolutionParameter.ActualValue);
+      DecodedSchedulingSolutionParameter.ActualValue = result;
+      return base.Apply();
+    } 
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingManipulator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingManipulator.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Encodings/SchedulingManipulator.cs	(revision 6266)
@@ -0,0 +1,58 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 HeuristicLab.Common;
+using HeuristicLab.Core;
+using HeuristicLab.Parameters;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Optimization;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.Problems.Scheduling.Encodings {
+  [Item("Scheduling Manipulator", "A JSSP manipulation operation.")]
+  [StorableClass]
+  public abstract class SchedulingManipulator<T> : SingleSuccessorOperator, ISchedulingManipulator, IStochasticOperator where T : Item, ISchedulingEncoding {
+    #region ISchedulingManipulator Members
+
+    public ILookupParameter<T> SchedulingSolutionParameter {
+      get { return (ILookupParameter<T>)Parameters["SchedulingSolution"]; }
+    }
+
+    #endregion
+
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
+    }
+
+    [StorableConstructor]
+    protected SchedulingManipulator(bool deserializing) : base(deserializing) { }
+    protected SchedulingManipulator(SchedulingManipulator<T> original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public SchedulingManipulator()
+      : base() {
+        Parameters.Add(new LookupParameter<T>("SchedulingSolution", "The JSSP solution to be manipulated."));
+        Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used for stochastic manipulation operators."));
+    }
+
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/JSSPEvaluationAlgorithm.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/JSSPEvaluationAlgorithm.cs	(revision 6264)
+++ 	(revision )
@@ -1,76 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using HeuristicLab.Operators;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Core;
-using HeuristicLab.Common;
-using HeuristicLab.Problems.Scheduling.Encodings.JobSequenceMatrix;
-using HeuristicLab.Optimization;
-using HeuristicLab.Data;
-using HeuristicLab.Parameters;
-using HeuristicLab.Problems.Scheduling.Encodings.PriorityRulesVector;
-using HeuristicLab.Problems.Scheduling.Interfaces;
-using HeuristicLab.Problems.Scheduling.Encodings;
-
-namespace HeuristicLab.Problems.Scheduling.Evaluators {
-  [Item("Scheduling Evaluator", "Represents a general evaluator class for scheduling problems.")]
-  [StorableClass]
-  public class JSSPEvaluationAlgorithm : AlgorithmOperator, ISchedulingEvaluator {
-    [StorableConstructor]
-    protected JSSPEvaluationAlgorithm(bool deserializing) : base(deserializing) { }
-    protected JSSPEvaluationAlgorithm(JSSPEvaluationAlgorithm original, Cloner cloner)
-      : base(original, cloner) {
-    }
-    public override IDeepCloneable Clone(Cloner cloner) {
-      return new JSSPEvaluationAlgorithm(this, cloner);
-    }
-
-    public ILookupParameter<DoubleValue> QualityParameter {
-      get {
-        if (Parameters.ContainsKey("Quality"))
-          return (ILookupParameter<DoubleValue>)Parameters["Quality"];
-        else
-          return null;
-      }
-    }
-
-    public void InitializeOperatorGraph<T>(JSSPDecoder<T> decoder, JSSPEvaluator evaluator) where T: Item, ISchedulingEncoding{
-      OperatorGraph.InitialOperator = decoder;
-      decoder.Successor = evaluator;
-    }
-
-    public JSSPEvaluationAlgorithm()
-      : base() {
-        Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value aka fitness value of the solution."));
-        InitializeOperatorGraph<JSMEncoding>(new JSMDecoder(), new MakespanEvaluator());
-    }
-
-    public override IOperation Apply() {
-      return base.Apply();
-    }
-
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/JSSPEvaluator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/JSSPEvaluator.cs	(revision 6264)
+++ 	(revision )
@@ -1,76 +1,0 @@
-﻿#region License Information
-/* HeuristicLab
- * Copyright (C) 2002-2011 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 HeuristicLab.Core;
-using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Optimization;
-using HeuristicLab.Data;
-using HeuristicLab.Common;
-using HeuristicLab.Parameters;
-using System;
-using HeuristicLab.Problems.Scheduling.Encodings.JobSequenceMatrix;
-using HeuristicLab.Problems.Scheduling.Encodings;
-using HeuristicLab.Operators;
-using HeuristicLab.Problems.Scheduling.Interfaces;
-
-
-namespace HeuristicLab.Problems.Scheduling.Evaluators {
-  [Item("JSSP Evaluator", "Represents a evaluator class for standard job shop scheduling problems.")]
-  [StorableClass]
-  public abstract class JSSPEvaluator : JSSPOperator, ISchedulingEvaluator {
-    [StorableConstructor]
-    protected JSSPEvaluator(bool deserializing) : base(deserializing) { }
-    protected JSSPEvaluator(JSSPEvaluator original, Cloner cloner)
-      : base(original, cloner) {
-    }
-
-    public ILookupParameter<IRandom> RandomParameter {
-      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
-    }
-    public ILookupParameter<DoubleValue> QualityParameter {
-      get { 
-        if (Parameters.ContainsKey("Quality"))
-          return (ILookupParameter<DoubleValue>)Parameters["Quality"];
-        else
-          return null;
-      }
-    }
-    public ILookupParameter<Schedule> DecodedSchedulingSolutionParameter {
-      get { return (ILookupParameter<Schedule>)Parameters["DecodedSchedulingSolution"]; }
-    }
-
-    public JSSPEvaluator () : base () {
-      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value aka fitness value of the solution."));
-      Parameters.Add(new LookupParameter<Schedule>("DecodedSchedulingSolution", "The decoded scheduling solution represented as generalized schedule."));
-      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator."));
-    }
-
-    protected abstract DoubleValue evaluate(Schedule schedule);
-    
-    public override IOperation Apply() {
-      Schedule decodedSchedulingSolution = DecodedSchedulingSolutionParameter.ActualValue;
-      QualityParameter.ActualValue = evaluate(decodedSchedulingSolution);
-      return base.Apply();
-    }
-  }
-}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs	(revision 6266)
@@ -34,5 +34,5 @@
   [Item("Makespan Evaluator", "Represents an evaluator using the maximum makespan of a schedule.")]
   [StorableClass]
-  public class MakespanEvaluator : JSSPEvaluator {
+  public class MakespanEvaluator : SchedulingEvaluator {
     [StorableConstructor]
     protected MakespanEvaluator(bool deserializing) : base(deserializing) { }
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MeanTardinessEvaluator.cs	(revision 6266)
@@ -0,0 +1,76 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Data;
+using HeuristicLab.Optimization;
+using HeuristicLab.Parameters;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+
+namespace HeuristicLab.Problems.Scheduling.Evaluators {
+  [Item("Men tardiness Evaluator", "Represents an evaluator using the mean tardiness of a schedule.")]
+  [StorableClass]
+  public class MeanTardinessEvaluator : SchedulingEvaluator, IJSSPOperator {
+    [StorableConstructor]
+    protected MeanTardinessEvaluator(bool deserializing) : base(deserializing) { }
+    protected MeanTardinessEvaluator(MeanTardinessEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new MeanTardinessEvaluator(this, cloner);
+    }
+
+    #region Parameter Properties
+    public ILookupParameter<ItemList<JSSPJob>> JobsParameter {
+      get { return (ILookupParameter<ItemList<JSSPJob>>)Parameters["Jobs"]; }
+    }
+    #endregion
+    #region Properties
+    public ItemList<JSSPJob> Jobs {
+      get { return JobsParameter.ActualValue; }
+    }
+    #endregion
+
+    public MeanTardinessEvaluator() : base() {
+      Parameters.Add(new LookupParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance."));
+    }
+
+    protected override DoubleValue evaluate(Schedule schedule) {
+      double totalTardiness = 0;
+      foreach (Resource r in schedule.Resources) {
+        double tardiness = r.Tasks[r.Tasks.Count - 1].EndTime.Value - Jobs[r.Tasks[r.Tasks.Count - 1].JobNr.Value].DueDate.Value;
+        if (tardiness > 0)
+          totalTardiness += tardiness;
+      }
+      return new DoubleValue(totalTardiness / schedule.Resources.Count);
+    }
+
+    public override IOperation Apply() {
+      return base.Apply();
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluationAlgorithm.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluationAlgorithm.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluationAlgorithm.cs	(revision 6266)
@@ -0,0 +1,75 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Core;
+using HeuristicLab.Common;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+using HeuristicLab.Parameters;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+using HeuristicLab.Problems.Scheduling.Encodings;
+using HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling.JobSequenceMatrix;
+
+namespace HeuristicLab.Problems.Scheduling.Evaluators {
+  [Item("Scheduling Evaluator", "Represents a general evaluator class for scheduling problems.")]
+  [StorableClass]
+  public class SchedulingEvaluationAlgorithm : AlgorithmOperator, ISchedulingEvaluator {
+    [StorableConstructor]
+    protected SchedulingEvaluationAlgorithm(bool deserializing) : base(deserializing) { }
+    protected SchedulingEvaluationAlgorithm(SchedulingEvaluationAlgorithm original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SchedulingEvaluationAlgorithm(this, cloner);
+    }
+
+    public ILookupParameter<DoubleValue> QualityParameter {
+      get {
+        if (Parameters.ContainsKey("Quality"))
+          return (ILookupParameter<DoubleValue>)Parameters["Quality"];
+        else
+          return null;
+      }
+    }
+
+    public void InitializeOperatorGraph<T>(SchedulingDecoder<T> decoder, SchedulingEvaluator evaluator) where T: Item, ISchedulingEncoding{
+      OperatorGraph.Operators.Clear();
+      OperatorGraph.InitialOperator = decoder;
+      decoder.Successor = evaluator;
+    }
+
+    public SchedulingEvaluationAlgorithm()
+      : base() {
+        Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value aka fitness value of the solution."));
+    }
+
+    public override IOperation Apply() {
+      return base.Apply();
+    }
+
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs	(revision 6266)
@@ -0,0 +1,75 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Optimization;
+using HeuristicLab.Data;
+using HeuristicLab.Common;
+using HeuristicLab.Parameters;
+using System;
+using HeuristicLab.Problems.Scheduling.Encodings;
+using HeuristicLab.Operators;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+
+
+namespace HeuristicLab.Problems.Scheduling.Evaluators {
+  [Item("JSSP Evaluator", "Represents a evaluator class for standard job shop scheduling problems.")]
+  [StorableClass]
+  public abstract class SchedulingEvaluator : SingleSuccessorOperator, ISchedulingEvaluator {
+    [StorableConstructor]
+    protected SchedulingEvaluator(bool deserializing) : base(deserializing) { }
+    protected SchedulingEvaluator(SchedulingEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
+    }
+    public ILookupParameter<DoubleValue> QualityParameter {
+      get { 
+        if (Parameters.ContainsKey("Quality"))
+          return (ILookupParameter<DoubleValue>)Parameters["Quality"];
+        else
+          return null;
+      }
+    }
+    public ILookupParameter<Schedule> DecodedSchedulingSolutionParameter {
+      get { return (ILookupParameter<Schedule>)Parameters["DecodedSchedulingSolution"]; }
+    }
+
+    public SchedulingEvaluator () : base () {
+      Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality value aka fitness value of the solution."));
+      Parameters.Add(new LookupParameter<Schedule>("DecodedSchedulingSolution", "The decoded scheduling solution represented as generalized schedule."));
+      Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator."));
+    }
+
+    protected abstract DoubleValue evaluate(Schedule schedule);
+    
+    public override IOperation Apply() {
+      Schedule decodedSchedulingSolution = DecodedSchedulingSolutionParameter.ActualValue;
+      QualityParameter.ActualValue = evaluate(decodedSchedulingSolution);
+      return base.Apply();
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluatorType.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluatorType.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluatorType.cs	(revision 6266)
@@ -0,0 +1,42 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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.Core;
+using HeuristicLab.Data;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+
+namespace HeuristicLab.Problems.Scheduling.Evaluators {
+  [Item("SchedulingEvaluatorType", "Represents a certain type of scheduling evaluator.")]
+  [StorableClass]
+  public class SchedulingEvaluatorType : ValueTypeValue<SchedulingEvaluatorTypes> {
+    [StorableConstructor]
+    protected SchedulingEvaluatorType(bool deserializing) : base(deserializing) { }
+    protected SchedulingEvaluatorType(SchedulingEvaluatorType original, Cloner cloner) : base(original, cloner) { }
+    public SchedulingEvaluatorType() : base() { }
+    public SchedulingEvaluatorType(SchedulingEvaluatorTypes type) : base(type) { }
+
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SchedulingEvaluatorType(this, cloner);
+    }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluatorTypes.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluatorTypes.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluatorTypes.cs	(revision 6266)
@@ -0,0 +1,11 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Problems.Scheduling.Evaluators {
+  public enum SchedulingEvaluatorTypes {
+    MakespanEvaluator,
+    MeanTardinessEvaluator
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/HeuristicLab.Problems.Scheduling-3.3.csproj
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/HeuristicLab.Problems.Scheduling-3.3.csproj	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/HeuristicLab.Problems.Scheduling-3.3.csproj	(revision 6266)
@@ -49,56 +49,65 @@
   <ItemGroup>
     <Compile Include="Analyzers\BestSchedulingSolutionAnalyzer.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\JSMDecodingErrorPolicyTypes.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\Crossovers\JSMJOXCrossover.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\Crossovers\JSMCrossover.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\Crossovers\JSMOXCrossover.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\Crossovers\JSMSXXCrossover.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\JSMDecoder.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\JSMForcingStrategyTypes.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\JSMRandomCreator.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\JSMEncoding.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\Manipulators\JSMShiftChangeManipulator.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\Manipulators\JSMManipulator.cs" />
-    <Compile Include="Encodings\JobSequenceMatrix\Manipulators\JSMSwapManipulator.cs" />
-    <Compile Include="Encodings\JSSPCrossover.cs" />
-    <Compile Include="Encodings\JSSPDecoder.cs" />
-    <Compile Include="Encodings\JSSPEncodingTypes.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\Crossovers\PWRGOXCrossover.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\Crossovers\PWRCrossover.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\Crossovers\PWRPPXCrossover.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\Manipulators\PWRUniformOnePositionManipulator.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\Manipulators\PWRManipulator.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\PWRDecoder.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\PWREncoding.cs" />
-    <Compile Include="Encodings\PermutationWithRepetition\PWRRandomCreator.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\Crossovers\PRVSinglePointCrossover.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\Crossovers\PRVDiscreteCrossover.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\Manipulators\PRVUniformOnePositionManipulator.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\PRVEncoding.cs" />
-    <Compile Include="Interfaces\IJSSPDecoder.cs" />
+    <Compile Include="Analyzers\SchedulingAnalyzer.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JSSPManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JSSPDecoder.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JSSPCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\JSMDecodingErrorPolicyTypes.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\Crossovers\JSMJOXCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\Crossovers\JSMCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\Crossovers\JSMOXCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\Crossovers\JSMSXXCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\JSMDecoder.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\JSMForcingStrategyTypes.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\JSMRandomCreator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\JSMEncoding.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\Manipulators\JSMShiftChangeManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\Manipulators\JSMManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JobSequenceMatrix\Manipulators\JSMSwapManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JSSPCreator.cs" />
+    <Compile Include="Encodings\SchedulingCrossover.cs" />
+    <Compile Include="Encodings\SchedulingDecoder.cs" />
+    <Compile Include="Encodings\JobShopScheduling\JSSPEncodingTypes.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\Crossovers\PWRGOXCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\Crossovers\PWRCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\Crossovers\PWRPPXCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\Manipulators\PWRUniformOnePositionManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\Manipulators\PWRManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\PWRDecoder.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\PWREncoding.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PermutationWithRepetition\PWRRandomCreator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\Crossovers\PRVSinglePointCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\Crossovers\PRVDiscreteCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\Manipulators\PRVUniformOnePositionManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\PRVEncoding.cs" />
+    <Compile Include="Evaluators\SchedulingEvaluatorType.cs" />
+    <Compile Include="Evaluators\SchedulingEvaluatorTypes.cs" />
+    <Compile Include="Evaluators\MeanTardinessEvaluator.cs" />
+    <Compile Include="Interfaces\IJSSPEncoding.cs" />
+    <Compile Include="Interfaces\ISchedulingDecoder.cs" />
     <Compile Include="Interfaces\ISchedulingOperator.cs" />
     <Compile Include="Interfaces\IPWROperator.cs" />
     <Compile Include="Interfaces\IPRVOperator.cs" />
-    <Compile Include="Interfaces\IJSSPEncoding.cs" />
-    <Compile Include="Encodings\JSSPCreator.cs" />
-    <Compile Include="Encodings\JSSPManipulator.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\Crossovers\PRVCrossover.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\PRVDecoder.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\PRVRandomCreator.cs" />
-    <Compile Include="Encodings\PriorityRulesVector\Manipulators\PRVManipulator.cs" />
+    <Compile Include="Interfaces\ISchedulingEncoding.cs" />
+    <Compile Include="Encodings\SchedulingCreator.cs" />
+    <Compile Include="Encodings\SchedulingManipulator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\Crossovers\PRVCrossover.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\PRVDecoder.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\PRVRandomCreator.cs" />
+    <Compile Include="Encodings\JobShopScheduling\PriorityRulesVector\Manipulators\PRVManipulator.cs" />
     <Compile Include="Evaluators\MakespanEvaluator.cs" />
     <Compile Include="IndexedTaskList.cs" />
     <Compile Include="Interfaces\IJSMOperator.cs" />
-    <Compile Include="Interfaces\IJSSPCrossover.cs" />
-    <Compile Include="Interfaces\IJSSPManipulator.cs" />
+    <Compile Include="Interfaces\ISchedulingCrossover.cs" />
+    <Compile Include="Interfaces\ISchedulingManipulator.cs" />
     <Compile Include="Interfaces\ISchedulingCreator.cs" />
     <Compile Include="Interfaces\ISchedulingEvaluator.cs" />
     <Compile Include="Resource.cs" />
-    <Compile Include="Evaluators\JSSPEvaluator.cs" />
+    <Compile Include="Evaluators\SchedulingEvaluator.cs" />
     <Compile Include="JSSPJob.cs" />
     <Compile Include="JobShopSchedulingProblem.cs" />
     <Compile Include="JSSPTask.cs" />
-    <Compile Include="Encodings\JSSPOperator.cs" />
-    <Compile Include="Evaluators\JSSPEvaluationAlgorithm.cs" />
+    <Compile Include="Interfaces\IJSSPOperator.cs" />
+    <Compile Include="Evaluators\SchedulingEvaluationAlgorithm.cs" />
     <Compile Include="SchedulingProblem.cs" />
     <Compile Include="Plugin.cs" />
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/IndexedTaskList.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/IndexedTaskList.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/IndexedTaskList.cs	(revision 6266)
@@ -65,4 +65,15 @@
     #endregion
 
+    public DoubleValue TotalDuration {
+      get {
+        double result = 0;
+        foreach (JSSPTask t in Tasks) {
+          if (t.EndTime.Value > result)
+            result = t.EndTime.Value;
+        }
+        return new DoubleValue(result);
+      }
+    }
+
     public IndexedTaskList (IntValue index) : base (){
       Parameters.Add(new ValueParameter<IntValue>("Index", "The index of the resource in the associated Scheduling Problem.", new IntValue()));
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Interfaces/IJSSPEncoding.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Interfaces/IJSSPEncoding.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Interfaces/IJSSPEncoding.cs	(revision 6266)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Problems.Scheduling.Interfaces {
+  public interface IJSSPEncoding : ISchedulingEncoding{
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Interfaces/IJSSPOperator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Interfaces/IJSSPOperator.cs	(revision 6266)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Interfaces/IJSSPOperator.cs	(revision 6266)
@@ -0,0 +1,39 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using HeuristicLab.Operators;
+using HeuristicLab.Core;
+using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
+using HeuristicLab.Common;
+using HeuristicLab.Parameters;
+using HeuristicLab.Data;
+using HeuristicLab.Problems.Scheduling.Interfaces;
+
+namespace HeuristicLab.Problems.Scheduling.Interfaces {
+  public interface IJSSPOperator : ISchedulingOperator{
+    ILookupParameter<ItemList<JSSPJob>> JobsParameter { get; }
+    ItemList<JSSPJob> Jobs { get; }
+  }
+}
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JSSPJob.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JSSPJob.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JSSPJob.cs	(revision 6266)
@@ -38,4 +38,5 @@
     protected JSSPJob(JSSPJob original, Cloner cloner)
       : base(original, cloner) {
+        this.DueDate = cloner.Clone(original.DueDate);
     }
     public override IDeepCloneable Clone(Cloner cloner) {
@@ -43,5 +44,12 @@
     }
 
-    public JSSPJob(IntValue index) : base (index) {}
+    public DoubleValue DueDate { get; set; }
+
+    public JSSPJob(IntValue index, DoubleValue dueDate) : base (index) {
+      if (dueDate != null)
+        DueDate = (DoubleValue)dueDate.Clone();
+      else
+        DueDate = null;
+    }
 
     public override string ToString() {
@@ -51,4 +59,6 @@
         sb.Append(t.ToString () + " ");
       }
+      if (DueDate != null)
+        sb.Append("{" + DueDate.Value + "} ");
       sb.Append("]");
       return sb.ToString();
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JobShopSchedulingProblem.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JobShopSchedulingProblem.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/JobShopSchedulingProblem.cs	(revision 6266)
@@ -34,14 +34,13 @@
 using HeuristicLab.Problems.Scheduling.Evaluators;
 using HeuristicLab.Parameters;
-using HeuristicLab.Problems.Scheduling.Encodings.JobSequenceMatrix;
 using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Problems.Scheduling.Analyzers;
 using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Problems.Scheduling.Encodings.JobSequenceMatrix.Manipulators;
-using HeuristicLab.Problems.Scheduling.Encodings.JobSequenceMatrix.Crossovers;
 using HeuristicLab.Problems.Scheduling.Interfaces;
-using HeuristicLab.Problems.Scheduling.Encodings.PriorityRulesVector;
 using HeuristicLab.Encodings.IntegerVectorEncoding;
-using HeuristicLab.Problems.Scheduling.Encodings.PermutationWithRepetition;
+using HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling;
+using HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling.JobSequenceMatrix;
+using HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling.PriorityRulesVector;
+using HeuristicLab.Problems.Scheduling.Encodings.JobShopScheduling.PermutationWithRepetition;
 
 namespace HeuristicLab.Problems.Scheduling {
@@ -54,5 +53,7 @@
     private JobShopSchedulingProblem(JobShopSchedulingProblem original, Cloner cloner)
       : base(original, cloner) {
-        this.encodingType = original.encodingType;
+      this.encodingType = original.encodingType;
+      this.Jobs = cloner.Clone(original.Jobs);
+      this.EvaluatorType = cloner.Clone(original.EvaluatorType);
         AttachEventHandlers();
     }
@@ -66,7 +67,11 @@
       get { return (ValueParameter<ItemList<JSSPJob>>)Parameters["Jobs"]; }
     }
+    public ValueParameter<SchedulingEvaluatorType> EvaluatorTypeParameter {
+      get { return (ValueParameter<SchedulingEvaluatorType>)Parameters["EvaluatorType"]; }
+    }
     public OptionalValueParameter<Schedule> BestKnownSolutionParameter {
       get { return (OptionalValueParameter<Schedule>)Parameters["BestKnownSolution"]; }
     }
+
     #endregion
 
@@ -76,4 +81,8 @@
       set { JobsParameter.Value = value; }
     }
+    public SchedulingEvaluatorType EvaluatorType {
+      get { return EvaluatorTypeParameter.Value; }
+      set { EvaluatorTypeParameter.Value = value; }
+    }
     public Schedule BestKnownSolution {
       get { return BestKnownSolutionParameter.Value; }
@@ -86,7 +95,8 @@
 
     public JobShopSchedulingProblem()
-      : base(new JSSPEvaluationAlgorithm (), new JSMRandomCreator ()) {
-        Parameters.Add(new ValueParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance.", new ItemList<JSSPJob>()));
-        Parameters.Add(new OptionalValueParameter<Schedule>("BestKnownSolution", "The best known solution of this JSSP instance.")); 
+      : base(new SchedulingEvaluationAlgorithm (), new JSMRandomCreator ()) {
+      Parameters.Add(new ValueParameter<ItemList<JSSPJob>>("Jobs", "Jobdata defining the precedence relationships and the duration of the tasks in this JSSP-Instance.", new ItemList<JSSPJob>()));
+      Parameters.Add(new ValueParameter<SchedulingEvaluatorType>("EvaluatorType", "Type of the evaluator used to determine the quality of an individual.", new SchedulingEvaluatorType (SchedulingEvaluatorTypes.MakespanEvaluator)));
+      Parameters.Add(new OptionalValueParameter<Schedule>("BestKnownSolution", "The best known solution of this JSSP instance.")); 
         encodingType = JSSPEncodingTypes.JSMEncoding;
         InitializeOperators();
@@ -119,15 +129,32 @@
 
     private void ApplyEncoding() {
-      if (encodingType == JSSPEncodingTypes.JSMEncoding) {
-        Operators.AddRange(ApplicationManager.Manager.GetInstances<IJSMOperator>());
-        ((JSSPEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<JSMEncoding>(new JSMDecoder(), new MakespanEvaluator());
+      if (EvaluatorType.Value == SchedulingEvaluatorTypes.MakespanEvaluator) {
+        if (encodingType == JSSPEncodingTypes.JSMEncoding) {
+          Operators.AddRange(ApplicationManager.Manager.GetInstances<IJSMOperator>());
+          ((SchedulingEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<JSMEncoding>(new JSMDecoder(), new MakespanEvaluator());
+        } else {
+          if (encodingType == JSSPEncodingTypes.PRVEncoding) {
+            Operators.AddRange(ApplicationManager.Manager.GetInstances<IPRVOperator>());
+            ((SchedulingEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<PRVEncoding>(new PRVDecoder(), new MakespanEvaluator());
+          } else {
+            if (encodingType == JSSPEncodingTypes.PWREncoding) {
+              Operators.AddRange(ApplicationManager.Manager.GetInstances<IPWROperator>());
+              ((SchedulingEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<PWREncoding>(new PWRDecoder(), new MakespanEvaluator());
+            }
+          }
+        }
       } else {
-        if (encodingType == JSSPEncodingTypes.PRVEncoding) {
-          Operators.AddRange(ApplicationManager.Manager.GetInstances<IPRVOperator>());
-          ((JSSPEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<PRVEncoding>(new PRVDecoder(), new MakespanEvaluator());
+        if (encodingType == JSSPEncodingTypes.JSMEncoding) {
+          Operators.AddRange(ApplicationManager.Manager.GetInstances<IJSMOperator>());
+          ((SchedulingEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<JSMEncoding>(new JSMDecoder(), new MeanTardinessEvaluator());
         } else {
-          if (encodingType == JSSPEncodingTypes.PWREncoding) {
-            Operators.AddRange(ApplicationManager.Manager.GetInstances<IPWROperator>());
-            ((JSSPEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<PWREncoding>(new PWRDecoder(), new MakespanEvaluator());
+          if (encodingType == JSSPEncodingTypes.PRVEncoding) {
+            Operators.AddRange(ApplicationManager.Manager.GetInstances<IPRVOperator>());
+            ((SchedulingEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<PRVEncoding>(new PRVDecoder(), new MeanTardinessEvaluator());
+          } else {
+            if (encodingType == JSSPEncodingTypes.PWREncoding) {
+              Operators.AddRange(ApplicationManager.Manager.GetInstances<IPWROperator>());
+              ((SchedulingEvaluationAlgorithm)this.EvaluatorParameter.ActualValue).InitializeOperatorGraph<PWREncoding>(new PWRDecoder(), new MeanTardinessEvaluator());
+            }
           }
         }
@@ -183,13 +210,24 @@
         if (data.Count > 0 && ((int)data[0][0] >= 48 && (int)data[0][0] <= 57)) {
           int jobCount = 0;
-          //data[0] = nrOfJobs
-          //data[1] = nrOfResources
+          //data[0] = nrOfJobs (int)
+          //data[1] = nrOfResources (int)
+          //data[2] = bestKnownQuality (double)
+          //data[3] = dueDates (0|1)
+          bool withDueDates = false;
           if (data.Count > 2)
             BestKnownQualityParameter.ActualValue = new DoubleValue(Double.Parse (data[2]));
+          if (data.Count > 3 && data[3] == "1")
+            withDueDates = true;
           line = problemFile.ReadLine();
           data = SplitString(line);
           while (!problemFile.EndOfStream && data.Count > 0 && ((int)data[0][0] >= 48 && (int)data[0][0] <= 57)) {
-            JSSPJob j = new JSSPJob(new IntValue(jobCount));
-            for (int i = 0; i < data.Count; i++) {
+            DoubleValue dueDate = null;
+            int dataCount = data.Count;
+            if (withDueDates) {
+              dueDate = new DoubleValue(Double.Parse(data[data.Count - 1]));
+              dataCount--;
+            }
+            JSSPJob j = new JSSPJob(new IntValue(jobCount), dueDate);
+            for (int i = 0; i < dataCount; i++) {
               JSSPTask t = new JSSPTask(new IntValue (i / 2), new IntValue(Int32.Parse(data[i])), new DoubleValue(Double.Parse(data[i + 1])), new IntValue (jobCount));
               if (j.Tasks.Count > 0) {
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Resource.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Resource.cs	(revision 6264)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Resource.cs	(revision 6266)
@@ -43,15 +43,4 @@
     }
 
-    public DoubleValue TotalDuration {
-      get {
-        double result = 0;
-        foreach (JSSPTask t in Tasks) {
-          if (t.EndTime.Value > result)
-            result = t.EndTime.Value;
-        }
-        return new DoubleValue (result);
-      }
-    }
-
     public Resource(IntValue index) : base (index) { }
 
