Index: /trunk/autoquest-plugin-uml-test/src/test/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtilsTest.java
===================================================================
--- /trunk/autoquest-plugin-uml-test/src/test/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtilsTest.java	(revision 2008)
+++ /trunk/autoquest-plugin-uml-test/src/test/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtilsTest.java	(revision 2009)
@@ -306,13 +306,5 @@
 
         // create a test case for each observed sequence
-        int i = 0;
-        for (List<Event> sequence : sequences) {
-            UMLUtils.createInteractionFromEventSequence(sequence, model,
-                                                        properties.getProperty("testcases.prefix") +
-                                                            "_" + i,
-                                                        properties.getProperty("test.context"),
-                                                        false);
-            i++;
-        }
+        UMLUtils.createInteractionFromEventSequence(sequences, model,  properties.getProperty("testcases.prefix"), properties.getProperty("test.context"), false);
 
         ModelUtils.writeModelToFile(model, OUTPUT_DIR + testdata.testSuiteFile);
@@ -330,13 +322,7 @@
 
         int i = 1;
-        List<Interaction> interactions = new LinkedList<>();
+        List<Interaction> interactions = UMLUtils.createInteractionFromEventSequence(generatedSequences, model, properties.getProperty("testcases.prefix"), properties.getProperty("test.context"), Boolean.parseBoolean(properties.getProperty("testcases.data.random", "false")));
         int[] lengths = new int[generatedSequences.size()];
         for (List<Event> sequence : generatedSequences) {
-            interactions.add(UMLUtils
-                .createInteractionFromEventSequence(sequence, model,
-                                                    properties.getProperty("testcases.prefix") +
-                                                        "_" + i,
-                                                    properties.getProperty("test.context"),
-                                                    Boolean.parseBoolean(properties.getProperty("testcases.data.random", "false"))));
             lengths[i - 1] = sequence.size();
             i++;
@@ -357,14 +343,6 @@
         Collection<List<Event>> generatedSequences =
             createRandomSequences(usageProfile, properties);
-        int i = 1;
-        for (List<Event> sequence : generatedSequences) {
-            UMLUtils.createInteractionFromEventSequence(sequence, model,
-                                                        properties.getProperty("testcases.prefix") +
-                                                            "_" + i,
-                                                        properties.getProperty("test.context"),
-                                                        true);
-            i++;
-        }
-
+        UMLUtils.createInteractionFromEventSequence(generatedSequences, model, properties.getProperty("testcases.prefix"), properties.getProperty("test.context"), Boolean.parseBoolean(properties.getProperty("testcases.data.random", "false")));
+        
         UMLUtils.createScheduling(model, usageProfile, properties.getProperty("test.context"));
 
@@ -419,10 +397,10 @@
         int testCaseMinLength = Integer.parseInt(properties.getProperty("testcases.minlenth", "1"));
         int testCaseMaxLength =
-            Integer.parseInt(properties.getProperty("testcases.maxlenth", "100"));
+            Integer.parseInt(properties.getProperty("testcases.maxlength", "100"));
         int maxIter = numberOfTestCases * 100;
         RandomWalkGenerator testGenerator =
             new RandomWalkGenerator(numberOfTestCases, testCaseMinLength, testCaseMaxLength, true,
                                     maxIter);
-        return testGenerator.generateTestSuite(usageProfile);
+        return SOAPUtils.dropInvalidResponseRequestPairs(testGenerator.generateTestSuite(usageProfile));
     }
 
Index: /trunk/autoquest-plugin-uml-test/src/test/resources/ita_imported_properties.prop
===================================================================
--- /trunk/autoquest-plugin-uml-test/src/test/resources/ita_imported_properties.prop	(revision 2008)
+++ /trunk/autoquest-plugin-uml-test/src/test/resources/ita_imported_properties.prop	(revision 2009)
@@ -23,5 +23,5 @@
 testcases.number = 10
 testcases.minlenght = 1
-testcases.maxlength = 10
+testcases.maxlength = 50
 testcases.data.random = false
 
Index: /trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLInteractionCreator.java
===================================================================
--- /trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLInteractionCreator.java	(revision 2008)
+++ /trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLInteractionCreator.java	(revision 2009)
@@ -15,6 +15,8 @@
 package de.ugoe.cs.autoquest.plugin.uml;
 
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.logging.Level;
@@ -45,4 +47,5 @@
 import org.eclipse.uml2.uml.Slot;
 import org.eclipse.uml2.uml.UMLPackage;
+import org.w3c.dom.Element;
 
 import de.ugoe.cs.autoquest.eventcore.Event;
@@ -75,5 +78,10 @@
      */
     private final boolean useRandomMsgBodies;
-
+    
+    /**
+     * TODO
+     */
+    private final Map<String, InstanceSpecification> instanceSpecificationCache;
+    
     /**
      * <p>
@@ -93,4 +101,5 @@
         this.testContextName = testContextName;
         this.useRandomMsgBodies = useRandomMsgBodies;
+        instanceSpecificationCache = new HashMap<String, InstanceSpecification>();
     }
 
@@ -316,5 +325,5 @@
                                       String prefix)
     {
-        org.w3c.dom.Element requestBody;
+        Element requestBody;
         if (SOAPUtils.isSOAPRequest(event)) {
             requestBody =
@@ -388,10 +397,10 @@
                                                  internalParameter.getType(),
                                                  UMLPackage.Literals.INSTANCE_VALUE);
-                            value
-                                .setInstance(createInstanceSpecification((DataType) internalParameter
-                                                                             .getType(),
-                                                                         instSpecPkg, prefix,
-                                                                         instSpecNumber, paramNode,
-                                                                         path));
+                            InstanceSpecification instSpec = createInstanceSpecification((DataType) internalParameter
+                                                                                        .getType(),
+                                                                                        instSpecPkg, prefix,
+                                                                                        instSpecNumber, paramNode,
+                                                                                        path);
+                            value.setInstance(instSpec);
                             /*
                              * InstanceValue value = (InstanceValue) argument .createOperand(null,
@@ -443,4 +452,7 @@
                                                               String path)
     {
+        if( instanceSpecificationCache.containsKey(SOAPUtils.getSerialization(currentNode)) ) {
+            return instanceSpecificationCache.get(SOAPUtils.getSerialization(currentNode));
+        }
         if ("".equals(path)) {
             path = type.getName();
@@ -505,4 +517,5 @@
             }
         }
+        instanceSpecificationCache.put(SOAPUtils.getSerialization(currentNode), instSpec);
         return instSpec;
     }
Index: /trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java
===================================================================
--- /trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java	(revision 2008)
+++ /trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java	(revision 2009)
@@ -423,5 +423,5 @@
      *            defines is random request bodies are used or the body of the associated event
      */
-    public static Interaction createInteractionFromEventSequence(List<Event> sequence,
+    public static List<Interaction> createInteractionFromEventSequence(Collection<List<Event>> sequences,
                                                                  Model model,
                                                                  String interactionName,
@@ -429,6 +429,12 @@
                                                                  boolean useRandomMsgBodies)
     {
+        List<Interaction> interactions = new LinkedList<>();
         UMLInteractionCreator interactionCreator = new UMLInteractionCreator(model, testContextName, useRandomMsgBodies);
-        return interactionCreator.createInteraction(sequence, interactionName);
+        int i=0;
+        for( List<Event> sequence : sequences ) {
+            interactions.add(interactionCreator.createInteraction(sequence, interactionName+"_"+i));
+            i++;
+        }
+        return interactions;
     }
 
