Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/JSSPEvaluator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/JSSPEvaluator.cs	(revision 6177)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/JSSPEvaluator.cs	(revision 6177)
@@ -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.JobSequenceMatrix;
+using HeuristicLab.Problems.Scheduling.Encodings;
+using HeuristicLab.Operators;
+
+
+namespace HeuristicLab.Problems.Scheduling.Evaluators {
+  [Item("JSSP Evaluator", "Represents a evaluator class for standard job shop scheduling problems.")]
+  [StorableClass]
+  public abstract class JSSPEvaluator : JSSPOperator, ISingleObjectiveEvaluator {
+    [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 6121)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/MakespanEvaluator.cs	(revision 6177)
@@ -34,5 +34,5 @@
   [Item("Makespan Evaluator", "Represents an evaluator using the maximum makespan of a schedule.")]
   [StorableClass]
-  public class MakespanEvaluator : JSSPEvaluator, IStochasticOperator {
+  public class MakespanEvaluator : JSSPEvaluator {
     [StorableConstructor]
     protected MakespanEvaluator(bool deserializing) : base(deserializing) { }
@@ -44,8 +44,5 @@
     }
 
-    
-
     public MakespanEvaluator () : base () { }
-
 
     protected override DoubleValue evaluate(Schedule schedule) {
Index: branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs
===================================================================
--- branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs	(revision 6177)
+++ branches/Scheduling/HeuristicLab.Problems.Scheduling/3.3/Evaluators/SchedulingEvaluator.cs	(revision 6177)
@@ -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.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 SchedulingEvaluator : AlgorithmOperator, ISchedulingEvaluator {
+    [StorableConstructor]
+    protected SchedulingEvaluator(bool deserializing) : base(deserializing) { }
+    protected SchedulingEvaluator(SchedulingEvaluator original, Cloner cloner)
+      : base(original, cloner) {
+    }
+    public override IDeepCloneable Clone(Cloner cloner) {
+      return new SchedulingEvaluator(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, IJSSPEncoding{
+      OperatorGraph.InitialOperator = decoder;
+      decoder.Successor = evaluator;
+    }
+
+    public SchedulingEvaluator()
+      : 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();
+    }
+
+  }
+}
