Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/CordeauFormat/CordeauFormatInstanceProvider.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/CordeauFormat/CordeauFormatInstanceProvider.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/CordeauFormat/CordeauFormatInstanceProvider.cs	(revision 11289)
@@ -23,6 +23,6 @@
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
-  public abstract class CordeauFormatInstanceProvider : VRPInstanceProvider {
-    protected override VRPData LoadData(Stream stream) {
+  public abstract class CordeauFormatInstanceProvider : VRPInstanceProvider<MDCVRPTWData> {
+    protected override MDCVRPTWData LoadData(Stream stream) {
       return LoadInstance(new CordeauParser(stream));
     }
@@ -31,5 +31,5 @@
       get { return true; }
     }
-    public override VRPData ImportData(string path) {
+    public override MDCVRPTWData ImportData(string path) {
       return LoadInstance(new CordeauParser(path));
     }
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/GoldenFormat/GoldenFormatInstanceProvider.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/GoldenFormat/GoldenFormatInstanceProvider.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/GoldenFormat/GoldenFormatInstanceProvider.cs	(revision 11289)
@@ -24,6 +24,6 @@
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
-  public abstract class GoldenFormatInstanceProvider : VRPInstanceProvider {
-    protected override VRPData LoadData(Stream stream) {
+  public abstract class GoldenFormatInstanceProvider : VRPInstanceProvider<CVRPTWData> {
+    protected override CVRPTWData LoadData(Stream stream) {
       return LoadInstance(new GoldenParser(stream));
     }
@@ -32,5 +32,5 @@
       get { return true; }
     }
-    public override VRPData ImportData(string path) {
+    public override CVRPTWData ImportData(string path) {
       return LoadInstance(new GoldenParser(path));
     }
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/LiLimFormat/LiLimFormatInstanceProvider.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/LiLimFormat/LiLimFormatInstanceProvider.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/LiLimFormat/LiLimFormatInstanceProvider.cs	(revision 11289)
@@ -23,6 +23,6 @@
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
-  public abstract class LiLimFormatInstanceProvider : VRPInstanceProvider {
-    protected override VRPData LoadData(Stream stream) {
+  public abstract class LiLimFormatInstanceProvider : VRPInstanceProvider<PDPTWData> {
+    protected override PDPTWData LoadData(Stream stream) {
       return LoadInstance(new LiLimParser(stream));
     }
@@ -31,5 +31,5 @@
       get { return true; }
     }
-    public override VRPData ImportData(string path) {
+    public override PDPTWData ImportData(string path) {
       return LoadInstance(new LiLimParser(path));
     }
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/SolomonFormatInstanceProvider.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/SolomonFormatInstanceProvider.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/SolomonFormat/SolomonFormatInstanceProvider.cs	(revision 11289)
@@ -23,6 +23,6 @@
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
-  public abstract class SolomonFormatInstanceProvider : VRPInstanceProvider {
-    protected override VRPData LoadData(Stream stream) {
+  public abstract class SolomonFormatInstanceProvider : VRPInstanceProvider<CVRPTWData> {
+    protected override CVRPTWData LoadData(Stream stream) {
       return LoadInstance(new SolomonParser(stream));
     }
@@ -31,5 +31,5 @@
       get { return true; }
     }
-    public override VRPData ImportData(string path) {
+    public override CVRPTWData ImportData(string path) {
       return LoadInstance(new SolomonParser(path));
     }
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/TSPLibFormatInstanceProvider.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/TSPLibFormatInstanceProvider.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TSPLibFormat/TSPLibFormatInstanceProvider.cs	(revision 11289)
@@ -25,6 +25,6 @@
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
-  public abstract class TSPLibFormatInstanceProvider : VRPInstanceProvider {
-    protected override VRPData LoadData(Stream stream) {
+  public abstract class TSPLibFormatInstanceProvider : VRPInstanceProvider<CVRPData> {
+    protected override CVRPData LoadData(Stream stream) {
       return LoadInstance(new TSPLIBParser(stream));
     }
@@ -33,5 +33,5 @@
       get { return true; }
     }
-    public override VRPData ImportData(string path) {
+    public override CVRPData ImportData(string path) {
       return LoadInstance(new TSPLIBParser(path));
     }
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TaillardFormat/TaillardFormatInstanceProvider.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TaillardFormat/TaillardFormatInstanceProvider.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/TaillardFormat/TaillardFormatInstanceProvider.cs	(revision 11289)
@@ -23,6 +23,6 @@
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
-  public abstract class TaillardFormatInstanceProvider : VRPInstanceProvider {
-    protected override VRPData LoadData(Stream stream) {
+  public abstract class TaillardFormatInstanceProvider : VRPInstanceProvider<CVRPData> {
+    protected override CVRPData LoadData(Stream stream) {
       return LoadInstance(new TaillardParser(stream));
     }
@@ -31,5 +31,5 @@
       get { return true; }
     }
-    public override VRPData ImportData(string path) {
+    public override CVRPData ImportData(string path) {
       return LoadInstance(new TaillardParser(path));
     }
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/VRPInstanceProvider.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/VRPInstanceProvider.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances.VehicleRouting/3.4/VRPInstanceProvider.cs	(revision 11289)
@@ -29,5 +29,5 @@
 
 namespace HeuristicLab.Problems.Instances.VehicleRouting {
-  public abstract class VRPInstanceProvider : ProblemInstanceProvider<VRPData>, IVRPInstanceProvider {
+  public abstract class VRPInstanceProvider<T> : ProblemInstanceProvider<T>, IVRPInstanceProvider where T : IVRPData {
     protected abstract string FileName { get; }
 
@@ -52,5 +52,5 @@
     }
 
-    public override VRPData LoadData(IDataDescriptor id) {
+    public override T LoadData(IDataDescriptor id) {
       var descriptor = (VRPDataDescriptor)id;
       var instanceArchiveName = GetResourceName(FileName + @"\.zip");
@@ -76,5 +76,5 @@
     }
 
-    private static void LoadSolution(Stream stream, VRPData instance) {
+    private static void LoadSolution(Stream stream, T instance) {
       List<List<int>> routes = new List<List<int>>();
 
@@ -99,5 +99,5 @@
     }
 
-    public static void LoadSolution(string path, VRPData instance) {
+    public static void LoadSolution(string path, T instance) {
       using (FileStream stream = new FileStream(path, FileMode.Open)) {
         LoadSolution(stream, instance);
@@ -105,5 +105,5 @@
     }
 
-    protected abstract VRPData LoadData(Stream stream);
+    protected abstract T LoadData(Stream stream);
 
     public IVRPData Import(string vrpFile, string tourFile) {
@@ -116,5 +116,5 @@
 
     public void Export(IVRPData instance, string path) {
-      ExportData((VRPData)instance, path);
+      ExportData((T)instance, path);
     }
 
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances/3.3/IProblemInstanceConsumer.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances/3.3/IProblemInstanceConsumer.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances/3.3/IProblemInstanceConsumer.cs	(revision 11289)
@@ -25,5 +25,5 @@
   public interface IProblemInstanceConsumer : IContent { }
 
-  public interface IProblemInstanceConsumer<TData> : IProblemInstanceConsumer {
+  public interface IProblemInstanceConsumer<in TData> : IProblemInstanceConsumer {
     /// <summary>
     /// Loads the given instance data.
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances/3.3/Types/VRP/VRPData.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances/3.3/Types/VRP/VRPData.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.Instances/3.3/Types/VRP/VRPData.cs	(revision 11289)
@@ -25,5 +25,5 @@
   /// Describes instances of the Vehicle Routing Problem (VRP).
   /// </summary>
-  public abstract class VRPData: IVRPData {
+  public class VRPData : IVRPData {
     /// <summary>
     /// The name of the instance
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs	(revision 11289)
@@ -42,5 +42,5 @@
   [Creatable("Problems")]
   [StorableClass]
-  public sealed class VehicleRoutingProblem : Problem, ISingleObjectiveHeuristicOptimizationProblem, IStorableContent, IProblemInstanceConsumer<VRPData> {
+  public sealed class VehicleRoutingProblem : Problem, ISingleObjectiveHeuristicOptimizationProblem, IStorableContent, IProblemInstanceConsumer<IVRPData> {
     public string Filename { get; set; }
 
@@ -390,5 +390,5 @@
     #region IProblemInstanceConsumer<VRPData> Members
 
-    public void Load(VRPData data) {
+    public void Load(IVRPData data) {
       var interpreterDataType = data.GetType();
       var interpreterType = typeof(IVRPDataInterpreter<>).MakeGenericType(interpreterDataType);
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Tests/HeuristicLab.Problems.VehicleRouting-3.4/VRPInstancesTest.cs
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Tests/HeuristicLab.Problems.VehicleRouting-3.4/VRPInstancesTest.cs	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Tests/HeuristicLab.Problems.VehicleRouting-3.4/VRPInstancesTest.cs	(revision 11289)
@@ -21,8 +21,9 @@
 
 using System;
+using System.Collections.Generic;
 using System.Linq;
 using System.Text;
-using HeuristicLab.PluginInfrastructure;
-using HeuristicLab.Problems.Instances.VehicleRouting;
+using HeuristicLab.Problems.Instances;
+using HeuristicLab.Tests;
 using Microsoft.VisualStudio.TestTools.UnitTesting;
 
@@ -30,10 +31,15 @@
   [TestClass]
   public class VRPInstancesTest {
+    [ClassInitialize]
+    public static void MyClassInitialize(TestContext testContext) {
+      PluginLoader.Assemblies.Any();
+    }
+
     [TestMethod]
     [TestCategory("Problems.VehicleRouting")]
     [TestProperty("Time", "long")]
     public void TestVRPInstances() {
-      var providers = ApplicationManager.Manager.GetInstances<VRPInstanceProvider>();
       var vrp = new VehicleRoutingProblem();
+      var providers = ProblemInstanceManager.GetProviders(vrp);
       var failedInstances = new StringBuilder();
 
@@ -41,5 +47,5 @@
 
       foreach (var provider in providers) {
-        var instances = provider.GetDataDescriptors();
+        IEnumerable<IDataDescriptor> instances = ((dynamic)provider).GetDataDescriptors();
         Assert.IsTrue(instances.Any(), "No instances could be found.");
 
@@ -47,5 +53,5 @@
           try {
             // throws InvalidOperationException if zero or more than one interpreter is found
-            vrp.Load(provider.LoadData(instance));
+            ((dynamic)vrp).Load(((dynamic)provider).LoadData(instance));
           } catch (Exception exc) {
             failedInstances.AppendLine(instance + ": " + exc.Message);
Index: branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Tests/HeuristicLab.Tests.csproj
===================================================================
--- branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 11284)
+++ branches/HeuristicLab.Problems.Orienteering/HeuristicLab.Tests/HeuristicLab.Tests.csproj	(revision 11289)
@@ -330,4 +330,5 @@
       <Private>False</Private>
     </Reference>
+    <Reference Include="Microsoft.CSharp" />
     <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
       <Private>false</Private>
