diff --git a/.gradle/6.8/executionHistory/executionHistory.bin b/.gradle/6.8/executionHistory/executionHistory.bin
index 1484c9d63d199273496949a2272ca56bf7f42bdd..4846ab9e8f76178806280372871444084470fb81 100644
Binary files a/.gradle/6.8/executionHistory/executionHistory.bin and b/.gradle/6.8/executionHistory/executionHistory.bin differ
diff --git a/.gradle/6.8/executionHistory/executionHistory.lock b/.gradle/6.8/executionHistory/executionHistory.lock
index ce8e0b75a4f15497dd27e590ec160a6f0a003333..c98c02a78477cd136cc2664e507479da02ffcecc 100644
Binary files a/.gradle/6.8/executionHistory/executionHistory.lock and b/.gradle/6.8/executionHistory/executionHistory.lock differ
diff --git a/.gradle/6.8/fileHashes/fileHashes.bin b/.gradle/6.8/fileHashes/fileHashes.bin
index 152d843cd679d64cc69955af41c28055723ec3a6..19fb0ad197a8529b77595d2d49389c9099921d5b 100644
Binary files a/.gradle/6.8/fileHashes/fileHashes.bin and b/.gradle/6.8/fileHashes/fileHashes.bin differ
diff --git a/.gradle/6.8/fileHashes/fileHashes.lock b/.gradle/6.8/fileHashes/fileHashes.lock
index 1741f4b558b925283e6fdb3d2d2c941d9becc038..1bdf0ce5bb346bba926becb2bdd57792eeb8f291 100644
Binary files a/.gradle/6.8/fileHashes/fileHashes.lock and b/.gradle/6.8/fileHashes/fileHashes.lock differ
diff --git a/.gradle/6.8/javaCompile/javaCompile.lock b/.gradle/6.8/javaCompile/javaCompile.lock
index aa949682b6cbd37a068346226898d1531039b43e..cecf7075d103c0e1ced55bd00bdc267e9af0de4f 100644
Binary files a/.gradle/6.8/javaCompile/javaCompile.lock and b/.gradle/6.8/javaCompile/javaCompile.lock differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 54189f68d9ffa90feae4af53acee81fd488e05cc..7032b9fed6d71a3f43bc743b1350472c50b010ad 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class
index fd9b66a608e0ac4f0e0bb9448ca4626cc4be53dd..7ce4a08b41e923bd92d8d8517d5160987933f1e2 100644
Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Get.class differ
diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class
index e6d19e562eea092e2ab4847d6567ccf4812acc20..d2e9d9d5559e195c2863e7c0933c7fd44aedfb23 100644
Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/OpenAPIObject.class differ
diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class
index feb29ef925440c7f631e4a5e85d8f5294fa81006..00310aa774914cda66536152434c3f66851facf9 100644
Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/ParameterObject.class differ
diff --git a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class
index a67bb74d8bdbcc68b5851fcbfcb4624e210879f2..71f52bb256b1643108130f59dd575ade35b8cb37 100644
Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/ast/Post.class differ
diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java
index e65d51034b4630692a4d66ed1dbd04d076bfe483..8ba6ee656b45597aa08f3688ae04fe1567acac6b 100644
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java
+++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Get.java
@@ -280,7 +280,7 @@ protected java.util.Set inferRandomUrl_String_OperationObject_visited;
     }
   }
 /** @apilevel internal */
-protected java.util.Set generateRandomUrl_String_OperationObject_visited;
+protected java.util.Set generateRandomUrl_String_visited;
   /**
    * @attribute syn
    * @aspect RandomRequestGenerator
@@ -288,24 +288,22 @@ protected java.util.Set generateRandomUrl_String_OperationObject_visited;
    */
   @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
   @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:74")
-  public boolean generateRandomUrl(String pathRef, OperationObject operationObject) {
-    java.util.List _parameters = new java.util.ArrayList(2);
-    _parameters.add(pathRef);
-    _parameters.add(operationObject);
-    if (generateRandomUrl_String_OperationObject_visited == null) generateRandomUrl_String_OperationObject_visited = new java.util.HashSet(4);
-    if (generateRandomUrl_String_OperationObject_visited.contains(_parameters)) {
-      throw new RuntimeException("Circular definition of attribute Get.generateRandomUrl(String,OperationObject).");
+  public boolean generateRandomUrl(String pathRef) {
+    Object _parameters = pathRef;
+    if (generateRandomUrl_String_visited == null) generateRandomUrl_String_visited = new java.util.HashSet(4);
+    if (generateRandomUrl_String_visited.contains(_parameters)) {
+      throw new RuntimeException("Circular definition of attribute Get.generateRandomUrl(String).");
     }
-    generateRandomUrl_String_OperationObject_visited.add(_parameters);
+    generateRandomUrl_String_visited.add(_parameters);
     try {
             try{
-            for(ParameterOb o:operationObject.getParameterObs()){
+            for(ParameterOb o:getOperationObject().getParameterObs()){
             ParameterObject p=o.parameterObject();
             SchemaObject s=p.getSchemaOb().schemaObject();
             if(p.getIn().equals("path"))
-                pathRef=root().randomPathParameter(pathRef, p);
+                pathRef=p.randomPathParameter(pathRef);
             else if(p.getIn().equals("query"))
-                pathRef=root().randomQueryParameter(pathRef, p);
+                pathRef=p.randomQueryParameter(pathRef);
             }
             System.out.println("Generated path : "+pathRef);
     
@@ -328,14 +326,14 @@ protected java.util.Set generateRandomUrl_String_OperationObject_visited;
             // print result
             System.out.println("HTTP status code (GET) : "+responseCode);
             //System.out.println("Response : " + response.toString());
-            for(ResponseTuple t:operationObject.getResponseTuples()){
+            for(ResponseTuple t:getOperationObject().getResponseTuples()){
             if(t.getKey().equals("200")&&responseCode==200){
             //System.out.println("Response successfully saved!");
             SchemaOb respSchema=t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb();
             if(respSchema.schemaObject().getType().equals("array"))
-            operationObject.writeDictionaryWithArray(respSchema,response.toString());
+            getOperationObject().writeDictionaryWithArray(respSchema,response.toString());
             else
-            operationObject.writeDictionary(respSchema,response.toString());
+            getOperationObject().writeDictionary(respSchema,response.toString());
             }
             }
             return true;
@@ -345,7 +343,7 @@ protected java.util.Set generateRandomUrl_String_OperationObject_visited;
             }
             }
     finally {
-      generateRandomUrl_String_OperationObject_visited.remove(_parameters);
+      generateRandomUrl_String_visited.remove(_parameters);
     }
   }
   /** @apilevel internal */
diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java
index c0efc40ae8927fe178fe6fde93d8ba433ab3d626..0a70bce697ffbd11bc52b9624f3d246c19a5e838 100644
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java
+++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/OpenAPIObject.java
@@ -1316,153 +1316,6 @@ protected java.util.Map<ASTNode, java.util.Set<ASTNode>> contributorMap_OpenAPIO
     }
   }
 
-/** @apilevel internal */
-protected java.util.Set randomPathParameter_String_ParameterObject_visited;
-  /**
-   * @attribute syn
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:12
-   */
-  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
-  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:12")
-  public String randomPathParameter(String pathRef, ParameterObject p) {
-    java.util.List _parameters = new java.util.ArrayList(2);
-    _parameters.add(pathRef);
-    _parameters.add(p);
-    if (randomPathParameter_String_ParameterObject_visited == null) randomPathParameter_String_ParameterObject_visited = new java.util.HashSet(4);
-    if (randomPathParameter_String_ParameterObject_visited.contains(_parameters)) {
-      throw new RuntimeException("Circular definition of attribute OpenAPIObject.randomPathParameter(String,ParameterObject).");
-    }
-    randomPathParameter_String_ParameterObject_visited.add(_parameters);
-    try {
-            Random rand = new Random();
-            SchemaObject s=p.getSchemaOb().schemaObject();
-            String pathPart=pathRef.substring(pathRef.indexOf("{"),pathRef.indexOf("}")+1);
-    
-            if(s.getType().equals("string"))
-            pathRef=pathRef.replace(pathPart,root().generateRandomString(rand,s.getEnumObjs()));
-            else if(s.getType().equals("integer"))
-            pathRef=pathRef.replace(pathPart,root().generateRandomInt(rand,
-            -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
-            10 // s.getMaximum() != null ? s.getMaximum().intValue() : -1
-            ));
-            return pathRef;
-        }
-    finally {
-      randomPathParameter_String_ParameterObject_visited.remove(_parameters);
-    }
-  }
-/** @apilevel internal */
-protected java.util.Set randomQueryParameter_String_ParameterObject_visited;
-  /**
-   * @attribute syn
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:27
-   */
-  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
-  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:27")
-  public String randomQueryParameter(String pathRef, ParameterObject p) {
-    java.util.List _parameters = new java.util.ArrayList(2);
-    _parameters.add(pathRef);
-    _parameters.add(p);
-    if (randomQueryParameter_String_ParameterObject_visited == null) randomQueryParameter_String_ParameterObject_visited = new java.util.HashSet(4);
-    if (randomQueryParameter_String_ParameterObject_visited.contains(_parameters)) {
-      throw new RuntimeException("Circular definition of attribute OpenAPIObject.randomQueryParameter(String,ParameterObject).");
-    }
-    randomQueryParameter_String_ParameterObject_visited.add(_parameters);
-    try {
-            Random rand = new Random();
-            SchemaObject s=p.getSchemaOb().schemaObject();
-    
-            if(s.getType().equals("string"))
-            pathRef=pathRef+"?"+p.getName()+"="+root().generateRandomString(rand,s.getEnumObjs());
-            else if(s.getType().equals("integer"))
-            pathRef=pathRef+"?"+p.getName()+"="+root().generateRandomInt(rand,
-            -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
-            10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1
-            else if(s.getType().equals("array")){
-            if(s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("string")){
-            for(EnumObj e:s.getItemsSchema().getSchemaOb().schemaObject().getEnumObjs())
-            pathRef=rand.nextDouble()< 0.5?pathRef+"&"+p.getName()+"="+e.getEnumOb():pathRef;
-            }
-            else if(s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("integer")){
-            for(int i=0;i< 5;i++)
-            pathRef=pathRef+"&"+p.getName()+"="+root().generateRandomInt(rand,
-            -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
-            10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1
-            }
-            pathRef=pathRef.replaceFirst("&","?");
-            }
-            return pathRef;
-        }
-    finally {
-      randomQueryParameter_String_ParameterObject_visited.remove(_parameters);
-    }
-  }
-/** @apilevel internal */
-protected java.util.Set generateRandomString_Random_JastAddList_EnumObj__visited;
-  /**
-   * @attribute syn
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:170
-   */
-  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
-  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:170")
-  public String generateRandomString(Random rand, JastAddList<EnumObj> objs) {
-    java.util.List _parameters = new java.util.ArrayList(2);
-    _parameters.add(rand);
-    _parameters.add(objs);
-    if (generateRandomString_Random_JastAddList_EnumObj__visited == null) generateRandomString_Random_JastAddList_EnumObj__visited = new java.util.HashSet(4);
-    if (generateRandomString_Random_JastAddList_EnumObj__visited.contains(_parameters)) {
-      throw new RuntimeException("Circular definition of attribute OpenAPIObject.generateRandomString(Random,JastAddList_EnumObj_).");
-    }
-    generateRandomString_Random_JastAddList_EnumObj__visited.add(_parameters);
-    try {
-            if(objs.getNumChild()!=0)
-            return objs.getChild(rand.nextInt(objs.getNumChild())).getEnumOb().toString();
-    
-            return rand
-            .ints(97,123)
-            .limit(10)
-            .collect(StringBuilder::new,StringBuilder::appendCodePoint,StringBuilder::append)
-            .toString();
-            }
-    finally {
-      generateRandomString_Random_JastAddList_EnumObj__visited.remove(_parameters);
-    }
-  }
-/** @apilevel internal */
-protected java.util.Set generateRandomInt_Random_int_int_visited;
-  /**
-   * @attribute syn
-   * @aspect RandomRequestGenerator
-   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:181
-   */
-  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
-  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:181")
-  public String generateRandomInt(Random rand, int minimum, int maximum) {
-    java.util.List _parameters = new java.util.ArrayList(3);
-    _parameters.add(rand);
-    _parameters.add(minimum);
-    _parameters.add(maximum);
-    if (generateRandomInt_Random_int_int_visited == null) generateRandomInt_Random_int_int_visited = new java.util.HashSet(4);
-    if (generateRandomInt_Random_int_int_visited.contains(_parameters)) {
-      throw new RuntimeException("Circular definition of attribute OpenAPIObject.generateRandomInt(Random,int,int).");
-    }
-    generateRandomInt_Random_int_int_visited.add(_parameters);
-    try {
-            if(minimum>-1&&maximum>0)
-            return String.valueOf(rand.nextInt(minimum+maximum)-minimum);
-            else if(minimum>-1)
-            return String.valueOf(rand.nextInt()+minimum);
-            else if(maximum>0)
-            return String.valueOf(rand.nextInt(maximum));
-            return String.valueOf(rand.nextInt());
-            }
-    finally {
-      generateRandomInt_Random_int_int_visited.remove(_parameters);
-    }
-  }
   /**
    * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\InferParameter.jrag:25
    * @apilevel internal
@@ -1525,9 +1378,9 @@ protected java.util.Set generateRandomInt_Random_int_int_visited;
               String path=getServerObject(0).getUrl();
       
               if(p.hasGet())
-              p.getGet().generateRandomUrl(path+getPathsObject(i).getRef(),p.getGet().getOperationObject());
+              p.getGet().generateRandomUrl(path+getPathsObject(i).getRef());
               else if(p.hasPost())
-              p.getPost().generateRandomUrl(path+getPathsObject(i).getRef(),p.getPost().getOperationObject());
+              p.getPost().generateRandomUrl(path+getPathsObject(i).getRef());
       
               return true;}catch(Exception e){
                   return false;
diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java
index b2ca36a0f318407fc1b7599e34e078f6414aa1db..8623a65b509a7f696324f9df14ac94b69be5cfa6 100644
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java
+++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/ParameterObject.java
@@ -828,6 +828,149 @@ protected java.util.Set composeParameter_ParameterOb_Map_Object__ASTNode__visite
     }
   }
 /** @apilevel internal */
+protected java.util.Set randomPathParameter_String_visited;
+  /**
+   * @attribute syn
+   * @aspect RandomRequestGenerator
+   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:12
+   */
+  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
+  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:12")
+  public String randomPathParameter(String pathRef) {
+    Object _parameters = pathRef;
+    if (randomPathParameter_String_visited == null) randomPathParameter_String_visited = new java.util.HashSet(4);
+    if (randomPathParameter_String_visited.contains(_parameters)) {
+      throw new RuntimeException("Circular definition of attribute ParameterObject.randomPathParameter(String).");
+    }
+    randomPathParameter_String_visited.add(_parameters);
+    try {
+            Random rand = new Random();
+            SchemaObject s=getSchemaOb().schemaObject();
+            String pathPart=pathRef.substring(pathRef.indexOf("{"),pathRef.indexOf("}")+1);
+    
+            if(s.getType().equals("string"))
+            pathRef=pathRef.replace(pathPart,generateRandomString(rand,s.getEnumObjs()));
+            else if(s.getType().equals("integer"))
+            pathRef=pathRef.replace(pathPart,generateRandomInt(rand,
+            -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
+            10 // s.getMaximum() != null ? s.getMaximum().intValue() : -1
+            ));
+            return pathRef;
+        }
+    finally {
+      randomPathParameter_String_visited.remove(_parameters);
+    }
+  }
+/** @apilevel internal */
+protected java.util.Set randomQueryParameter_String_visited;
+  /**
+   * @attribute syn
+   * @aspect RandomRequestGenerator
+   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:27
+   */
+  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
+  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:27")
+  public String randomQueryParameter(String pathRef) {
+    Object _parameters = pathRef;
+    if (randomQueryParameter_String_visited == null) randomQueryParameter_String_visited = new java.util.HashSet(4);
+    if (randomQueryParameter_String_visited.contains(_parameters)) {
+      throw new RuntimeException("Circular definition of attribute ParameterObject.randomQueryParameter(String).");
+    }
+    randomQueryParameter_String_visited.add(_parameters);
+    try {
+            Random rand = new Random();
+            SchemaObject s=getSchemaOb().schemaObject();
+    
+            if(s.getType().equals("string"))
+            pathRef=pathRef+"?"+getName()+"="+generateRandomString(rand,s.getEnumObjs());
+            else if(s.getType().equals("integer"))
+            pathRef=pathRef+"?"+getName()+"="+generateRandomInt(rand,
+            -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
+            10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1
+            else if(s.getType().equals("array")){
+            if(s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("string")){
+            for(EnumObj e:s.getItemsSchema().getSchemaOb().schemaObject().getEnumObjs())
+            pathRef=rand.nextDouble()< 0.5?pathRef+"&"+getName()+"="+e.getEnumOb():pathRef;
+            }
+            else if(s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("integer")){
+            for(int i=0;i< 5;i++)
+            pathRef=pathRef+"&"+getName()+"="+generateRandomInt(rand,
+            -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
+            10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1
+            }
+            pathRef=pathRef.replaceFirst("&","?");
+            }
+            return pathRef;
+        }
+    finally {
+      randomQueryParameter_String_visited.remove(_parameters);
+    }
+  }
+/** @apilevel internal */
+protected java.util.Set generateRandomString_Random_JastAddList_EnumObj__visited;
+  /**
+   * @attribute syn
+   * @aspect RandomRequestGenerator
+   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:170
+   */
+  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
+  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:170")
+  public String generateRandomString(Random rand, JastAddList<EnumObj> objs) {
+    java.util.List _parameters = new java.util.ArrayList(2);
+    _parameters.add(rand);
+    _parameters.add(objs);
+    if (generateRandomString_Random_JastAddList_EnumObj__visited == null) generateRandomString_Random_JastAddList_EnumObj__visited = new java.util.HashSet(4);
+    if (generateRandomString_Random_JastAddList_EnumObj__visited.contains(_parameters)) {
+      throw new RuntimeException("Circular definition of attribute ParameterObject.generateRandomString(Random,JastAddList_EnumObj_).");
+    }
+    generateRandomString_Random_JastAddList_EnumObj__visited.add(_parameters);
+    try {
+            if(objs.getNumChild()!=0)
+            return objs.getChild(rand.nextInt(objs.getNumChild())).getEnumOb().toString();
+    
+            return rand
+            .ints(97,123)
+            .limit(10)
+            .collect(StringBuilder::new,StringBuilder::appendCodePoint,StringBuilder::append)
+            .toString();
+            }
+    finally {
+      generateRandomString_Random_JastAddList_EnumObj__visited.remove(_parameters);
+    }
+  }
+/** @apilevel internal */
+protected java.util.Set generateRandomInt_Random_int_int_visited;
+  /**
+   * @attribute syn
+   * @aspect RandomRequestGenerator
+   * @declaredat E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:181
+   */
+  @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
+  @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:181")
+  public String generateRandomInt(Random rand, int minimum, int maximum) {
+    java.util.List _parameters = new java.util.ArrayList(3);
+    _parameters.add(rand);
+    _parameters.add(minimum);
+    _parameters.add(maximum);
+    if (generateRandomInt_Random_int_int_visited == null) generateRandomInt_Random_int_int_visited = new java.util.HashSet(4);
+    if (generateRandomInt_Random_int_int_visited.contains(_parameters)) {
+      throw new RuntimeException("Circular definition of attribute ParameterObject.generateRandomInt(Random,int,int).");
+    }
+    generateRandomInt_Random_int_int_visited.add(_parameters);
+    try {
+            if(minimum>-1&&maximum>0)
+            return String.valueOf(rand.nextInt(minimum+maximum)-minimum);
+            else if(minimum>-1)
+            return String.valueOf(rand.nextInt()+minimum);
+            else if(maximum>0)
+            return String.valueOf(rand.nextInt(maximum));
+            return String.valueOf(rand.nextInt());
+            }
+    finally {
+      generateRandomInt_Random_int_int_visited.remove(_parameters);
+    }
+  }
+/** @apilevel internal */
 protected boolean parameterObject_visited = false;
   /**
    * @attribute syn
diff --git a/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java b/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java
index d16937e5978b2571ba66b9646f5ee7176bb986c5..128d9621b20716c6e111d31dc28949be3ee0b9da 100644
--- a/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java
+++ b/src/gen/java/de/tudresden/inf/st/openapi/ast/Post.java
@@ -280,7 +280,7 @@ protected java.util.Set inferRandomUrl_String_OperationObject_visited;
     }
   }
 /** @apilevel internal */
-protected java.util.Set generateRandomUrl_String_OperationObject_visited;
+protected java.util.Set generateRandomUrl_String_visited;
   /**
    * @attribute syn
    * @aspect RandomRequestGenerator
@@ -288,24 +288,22 @@ protected java.util.Set generateRandomUrl_String_OperationObject_visited;
    */
   @ASTNodeAnnotation.Attribute(kind=ASTNodeAnnotation.Kind.SYN)
   @ASTNodeAnnotation.Source(aspect="RandomRequestGenerator", declaredAt="E:\\bachelor-thesis\\SigTest\\bachelor-thesis-jastadd\\src\\main\\jastadd\\RandomRequestGenerator.jrag:121")
-  public boolean generateRandomUrl(String pathRef, OperationObject operationObject) {
-    java.util.List _parameters = new java.util.ArrayList(2);
-    _parameters.add(pathRef);
-    _parameters.add(operationObject);
-    if (generateRandomUrl_String_OperationObject_visited == null) generateRandomUrl_String_OperationObject_visited = new java.util.HashSet(4);
-    if (generateRandomUrl_String_OperationObject_visited.contains(_parameters)) {
-      throw new RuntimeException("Circular definition of attribute Post.generateRandomUrl(String,OperationObject).");
+  public boolean generateRandomUrl(String pathRef) {
+    Object _parameters = pathRef;
+    if (generateRandomUrl_String_visited == null) generateRandomUrl_String_visited = new java.util.HashSet(4);
+    if (generateRandomUrl_String_visited.contains(_parameters)) {
+      throw new RuntimeException("Circular definition of attribute Post.generateRandomUrl(String).");
     }
-    generateRandomUrl_String_OperationObject_visited.add(_parameters);
+    generateRandomUrl_String_visited.add(_parameters);
     try {
             try{
-            for(ParameterOb o:operationObject.getParameterObs()){
+            for(ParameterOb o:getOperationObject().getParameterObs()){
             ParameterObject p=o.parameterObject();
             SchemaObject s=p.getSchemaOb().schemaObject();
             if(p.getIn().equals("path"))
-            pathRef=root().randomPathParameter(pathRef, p);
+            pathRef=p.randomPathParameter(pathRef);
             else if(p.getIn().equals("query"))
-            pathRef=root().randomQueryParameter(pathRef, p);
+            pathRef=p.randomQueryParameter(pathRef);
             }
             System.out.println("Generated path : "+pathRef);
     
@@ -330,14 +328,14 @@ protected java.util.Set generateRandomUrl_String_OperationObject_visited;
             // print result
             System.out.println("HTTP status code (POST) : "+responseCode);
             //System.out.println("Response : " + response.toString());
-            for(ResponseTuple t:operationObject.getResponseTuples()){
+            for(ResponseTuple t:getOperationObject().getResponseTuples()){
             if(t.getKey().equals("200")&&responseCode==200){
             //System.out.println("Response successfully saved!");
             SchemaOb respSchema=t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb();
             if(respSchema.schemaObject().getType().equals("array"))
-            operationObject.writeDictionaryWithArray(respSchema,response.toString());
+            getOperationObject().writeDictionaryWithArray(respSchema,response.toString());
             else
-            operationObject.writeDictionary(respSchema,response.toString());
+            getOperationObject().writeDictionary(respSchema,response.toString());
             }
             }return true;
             }catch(Exception e){
@@ -346,7 +344,7 @@ protected java.util.Set generateRandomUrl_String_OperationObject_visited;
             }
             }
     finally {
-      generateRandomUrl_String_OperationObject_visited.remove(_parameters);
+      generateRandomUrl_String_visited.remove(_parameters);
     }
   }
   /** @apilevel internal */
diff --git a/src/main/jastadd/RandomRequestGenerator.jrag b/src/main/jastadd/RandomRequestGenerator.jrag
index 02a54e0ba5d0a6bc33b4f8f8ff7d8e93bb428112..efd85ba9f48626b840da7cf5a8546a41dabd0b7c 100644
--- a/src/main/jastadd/RandomRequestGenerator.jrag
+++ b/src/main/jastadd/RandomRequestGenerator.jrag
@@ -9,39 +9,39 @@ import java.util.stream.IntStream;
 
 aspect RandomRequestGenerator{
 
-    syn String OpenAPIObject.randomPathParameter(String pathRef, ParameterObject p){
+    syn String ParameterObject.randomPathParameter(String pathRef){
         Random rand = new Random();
-        SchemaObject s=p.getSchemaOb().schemaObject();
+        SchemaObject s=getSchemaOb().schemaObject();
         String pathPart=pathRef.substring(pathRef.indexOf("{"),pathRef.indexOf("}")+1);
 
         if(s.getType().equals("string"))
-        pathRef=pathRef.replace(pathPart,root().generateRandomString(rand,s.getEnumObjs()));
+        pathRef=pathRef.replace(pathPart,generateRandomString(rand,s.getEnumObjs()));
         else if(s.getType().equals("integer"))
-        pathRef=pathRef.replace(pathPart,root().generateRandomInt(rand,
+        pathRef=pathRef.replace(pathPart,generateRandomInt(rand,
         -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
         10 // s.getMaximum() != null ? s.getMaximum().intValue() : -1
         ));
         return pathRef;
     }
 
-    syn String OpenAPIObject.randomQueryParameter(String pathRef, ParameterObject p){
+    syn String ParameterObject.randomQueryParameter(String pathRef){
         Random rand = new Random();
-        SchemaObject s=p.getSchemaOb().schemaObject();
+        SchemaObject s=getSchemaOb().schemaObject();
 
         if(s.getType().equals("string"))
-        pathRef=pathRef+"?"+p.getName()+"="+root().generateRandomString(rand,s.getEnumObjs());
+        pathRef=pathRef+"?"+getName()+"="+generateRandomString(rand,s.getEnumObjs());
         else if(s.getType().equals("integer"))
-        pathRef=pathRef+"?"+p.getName()+"="+root().generateRandomInt(rand,
+        pathRef=pathRef+"?"+getName()+"="+generateRandomInt(rand,
         -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
         10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1
         else if(s.getType().equals("array")){
         if(s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("string")){
         for(EnumObj e:s.getItemsSchema().getSchemaOb().schemaObject().getEnumObjs())
-        pathRef=rand.nextDouble()< 0.5?pathRef+"&"+p.getName()+"="+e.getEnumOb():pathRef;
+        pathRef=rand.nextDouble()< 0.5?pathRef+"&"+getName()+"="+e.getEnumOb():pathRef;
         }
         else if(s.getItemsSchema().getSchemaOb().schemaObject().getType().equals("integer")){
         for(int i=0;i< 5;i++)
-        pathRef=pathRef+"&"+p.getName()+"="+root().generateRandomInt(rand,
+        pathRef=pathRef+"&"+getName()+"="+generateRandomInt(rand,
         -1, // s.getMinimum() != null ? s.getMinimum().intValue() : -1,
         10); // s.getMaximum() != null ? s.getMaximum().intValue() : -1
         }
@@ -62,24 +62,24 @@ public void OpenAPIObject.generateRequests()throws Exception{
         String path=getServerObject(0).getUrl();
 
         if(p.hasGet())
-        p.getGet().generateRandomUrl(path+getPathsObject(i).getRef(),p.getGet().getOperationObject());
+        p.getGet().generateRandomUrl(path+getPathsObject(i).getRef());
         else if(p.hasPost())
-        p.getPost().generateRandomUrl(path+getPathsObject(i).getRef(),p.getPost().getOperationObject());
+        p.getPost().generateRandomUrl(path+getPathsObject(i).getRef());
 
         return true;}catch(Exception e){
             return false;
         }
         }
 
-        syn boolean Get.generateRandomUrl(String pathRef,OperationObject operationObject){
+        syn boolean Get.generateRandomUrl(String pathRef){
         try{
-        for(ParameterOb o:operationObject.getParameterObs()){
+        for(ParameterOb o:getOperationObject().getParameterObs()){
         ParameterObject p=o.parameterObject();
         SchemaObject s=p.getSchemaOb().schemaObject();
         if(p.getIn().equals("path"))
-            pathRef=root().randomPathParameter(pathRef, p);
+            pathRef=p.randomPathParameter(pathRef);
         else if(p.getIn().equals("query"))
-            pathRef=root().randomQueryParameter(pathRef, p);
+            pathRef=p.randomQueryParameter(pathRef);
         }
         System.out.println("Generated path : "+pathRef);
 
@@ -102,14 +102,14 @@ public void OpenAPIObject.generateRequests()throws Exception{
         // print result
         System.out.println("HTTP status code (GET) : "+responseCode);
         //System.out.println("Response : " + response.toString());
-        for(ResponseTuple t:operationObject.getResponseTuples()){
+        for(ResponseTuple t:getOperationObject().getResponseTuples()){
         if(t.getKey().equals("200")&&responseCode==200){
         //System.out.println("Response successfully saved!");
         SchemaOb respSchema=t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb();
         if(respSchema.schemaObject().getType().equals("array"))
-        operationObject.writeDictionaryWithArray(respSchema,response.toString());
+        getOperationObject().writeDictionaryWithArray(respSchema,response.toString());
         else
-        operationObject.writeDictionary(respSchema,response.toString());
+        getOperationObject().writeDictionary(respSchema,response.toString());
         }
         }
         return true;
@@ -118,15 +118,15 @@ public void OpenAPIObject.generateRequests()throws Exception{
         return false;
         }
         }
-        syn boolean Post.generateRandomUrl(String pathRef,OperationObject operationObject){
+        syn boolean Post.generateRandomUrl(String pathRef){
         try{
-        for(ParameterOb o:operationObject.getParameterObs()){
+        for(ParameterOb o:getOperationObject().getParameterObs()){
         ParameterObject p=o.parameterObject();
         SchemaObject s=p.getSchemaOb().schemaObject();
         if(p.getIn().equals("path"))
-        pathRef=root().randomPathParameter(pathRef, p);
+        pathRef=p.randomPathParameter(pathRef);
         else if(p.getIn().equals("query"))
-        pathRef=root().randomQueryParameter(pathRef, p);
+        pathRef=p.randomQueryParameter(pathRef);
         }
         System.out.println("Generated path : "+pathRef);
 
@@ -151,14 +151,14 @@ public void OpenAPIObject.generateRequests()throws Exception{
         // print result
         System.out.println("HTTP status code (POST) : "+responseCode);
         //System.out.println("Response : " + response.toString());
-        for(ResponseTuple t:operationObject.getResponseTuples()){
+        for(ResponseTuple t:getOperationObject().getResponseTuples()){
         if(t.getKey().equals("200")&&responseCode==200){
         //System.out.println("Response successfully saved!");
         SchemaOb respSchema=t.getResponseOb().responseObject().getContentTuple(0).getMediaTypeObject().getSchemaOb();
         if(respSchema.schemaObject().getType().equals("array"))
-        operationObject.writeDictionaryWithArray(respSchema,response.toString());
+        getOperationObject().writeDictionaryWithArray(respSchema,response.toString());
         else
-        operationObject.writeDictionary(respSchema,response.toString());
+        getOperationObject().writeDictionary(respSchema,response.toString());
         }
         }return true;
         }catch(Exception e){
@@ -167,7 +167,7 @@ public void OpenAPIObject.generateRequests()throws Exception{
         }
         }
 
-syn String OpenAPIObject.generateRandomString(Random rand,JastAddList<EnumObj> objs){
+syn String ParameterObject.generateRandomString(Random rand,JastAddList<EnumObj> objs){
         if(objs.getNumChild()!=0)
         return objs.getChild(rand.nextInt(objs.getNumChild())).getEnumOb().toString();
 
@@ -178,7 +178,7 @@ syn String OpenAPIObject.generateRandomString(Random rand,JastAddList<EnumObj> o
         .toString();
         }
 
-syn String OpenAPIObject.generateRandomInt(Random rand,int minimum,int maximum){
+syn String ParameterObject.generateRandomInt(Random rand,int minimum,int maximum){
         if(minimum>-1&&maximum>0)
         return String.valueOf(rand.nextInt(minimum+maximum)-minimum);
         else if(minimum>-1)