diff --git a/.gradle/6.8/executionHistory/executionHistory.bin b/.gradle/6.8/executionHistory/executionHistory.bin
index 3d509229b37ded56d536f82fdf06ed33a9bb773f..f9d331a0b0b6a3719714f5e5afce05d6eec5296e 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 71aab95ae74613e3452cc8e53cd3e55e7c23d162..e5ce9d22043336041182c44d8c005f54ff9afc27 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 bddfd75b352c7341a93e62b0518b1104f6141b8e..cea07a515061152f4c00459239858767dae8a830 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 a36994a264ecec43fca917a5243c81b713c5eded..314550f158f638622f9b3a4d735ed8b804693b10 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 c2a8f59c1de299fffe11a0ce79449619f1d3d4dc..783d85ad15fb06223dce2c36fa07d1e3df669c0b 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 2ccc0fc242594bc28b2b8bd110392783c322b980..a614e1bc038bd4d26570d28670be19efc89d385d 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/OpenAPIMain.class b/build/classes/java/main/de/tudresden/inf/st/openapi/OpenAPIMain.class
index 6ec5ab501d6d9617b81e5077cc047592705625eb..598d3f06d65a84f3cc40d985b3cf947cd2322b83 100644
Binary files a/build/classes/java/main/de/tudresden/inf/st/openapi/OpenAPIMain.class and b/build/classes/java/main/de/tudresden/inf/st/openapi/OpenAPIMain.class differ
diff --git a/gen-api-ex/api-with-examples_generated.json b/gen-api-ex/api-with-examples_generated.json
index 687e97df2cc1b19e5be3b684176e4ae1ea9d1e99..16472c65f73603e4dda4b425ada836feb1dd8b4e 100644
--- a/gen-api-ex/api-with-examples_generated.json
+++ b/gen-api-ex/api-with-examples_generated.json
@@ -1,94 +1,102 @@
 {
-  "openapi" : "3.0.1",
+  "openapi" : "3.0.0",
   "info" : {
-    "contact" : {
-      "email" : "developer@uspto.gov",
-      "name" : "Open Data Portal",
-      "url" : "https://developer.uspto.gov"
-    },
-    "description" : "The Data Set API (DSAPI) allows the public users to discover and search USPTO exported data sets. This is a generic API that allows USPTO users to make any CSV based data files searchable through API. With the help of GET call, it returns the list of data fields that are searchable. With the help of POST call, data can be fetched based on the filters on the field names. Please note that POST call is used to search the actual data. The reason for the POST call is that it allows users to specify any complex search criteria without worry about the GET size limitations as well as encoding of the input parameters.",
+    "description" : "",
     "termsOfService" : "",
-    "title" : "USPTO Data Set API",
-    "version" : "1.0.0"
+    "title" : "Simple API overview",
+    "version" : "2.0.0"
   },
-  "tags" : [ {
-    "name" : "metadata",
-    "description" : "Find out about the data sets"
-  }, {
-    "name" : "search",
-    "description" : "Search a data set"
-  } ],
   "paths" : {
-    "/{dataset}/{version}/records" : {
-      "description" : "",
-      "summary" : "",
-      "post" : {
-        "tags" : [ "search" ],
-        "summary" : "Provides search capability for the data set with the given search criteria.",
-        "description" : "This API is based on Solr/Lucene Search. The data is indexed using SOLR. This GET API returns the list of all the searchable field names that are in the Solr Index. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the Solr/Lucene Syntax. Please refer https://lucene.apache.org/core/3_6_2/queryparsersyntax.html#Overview for the query syntax. List of field names that are searchable can be determined using above GET api.",
-        "operationId" : "perform-search",
-        "parameters" : [ {
-          "description" : "Version of the dataset.",
-          "required" : true,
-          "in" : "path",
-          "name" : "version"
-        }, {
-          "description" : "Name of the dataset. In this case, the default value is oa_citations",
-          "required" : true,
-          "in" : "path",
-          "name" : "dataset"
-        } ],
-        "requestBody" : {
-          "description" : "",
-          "content" : {
-            "application/x-www-form-urlencoded" : { }
-          }
-        },
-        "responses" : {
-          "200" : {
-            "description" : "successful operation",
-            "content" : {
-              "application/json" : { }
-            }
-          },
-          "404" : {
-            "description" : "No matching record found for the given criteria."
-          }
-        }
-      }
-    },
-    "/{dataset}/{version}/fields" : {
+    "/v2" : {
       "description" : "",
       "summary" : "",
       "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "Provides the general information about the API and the list of fields that can be used to query the dataset.",
-        "description" : "This GET API returns the list of all the searchable field names that are in the oa_citations. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the syntax options shown below.",
-        "operationId" : "list-searchable-fields",
-        "parameters" : [ {
-          "description" : "Name of the dataset.",
-          "example" : "oa_citations",
-          "required" : true,
-          "in" : "path",
-          "name" : "dataset"
-        }, {
-          "description" : "Version of the dataset.",
-          "example" : "v1",
-          "required" : true,
-          "in" : "path",
-          "name" : "version"
-        } ],
+        "summary" : "Show API version details",
+        "description" : "",
+        "operationId" : "getVersionDetailsv2",
         "responses" : {
           "200" : {
-            "description" : "The dataset API for the given version is found and it is accessible to consume.",
+            "description" : "200 response",
             "content" : {
-              "application/json" : { }
+              "application/json" : {
+                "examples" : {
+                  "foo" : {
+                    "summary" : "",
+                    "description" : "",
+                    "value" : {
+                      "version" : {
+                        "status" : "CURRENT",
+                        "updated" : "2011-01-21T11:33:21Z",
+                        "media-types" : [ {
+                          "base" : "application/xml",
+                          "type" : "application/vnd.openstack.compute+xml;version=2"
+                        }, {
+                          "base" : "application/json",
+                          "type" : "application/vnd.openstack.compute+json;version=2"
+                        } ],
+                        "id" : "v2.0",
+                        "links" : [ {
+                          "href" : "http://127.0.0.1:8774/v2/",
+                          "rel" : "self"
+                        }, {
+                          "href" : "http://docs.openstack.org/api/openstack-compute/2/os-compute-devguide-2.pdf",
+                          "type" : "application/pdf",
+                          "rel" : "describedby"
+                        }, {
+                          "href" : "http://docs.openstack.org/api/openstack-compute/2/wadl/os-compute-2.wadl",
+                          "type" : "application/vnd.sun.wadl+xml",
+                          "rel" : "describedby"
+                        }, {
+                          "href" : "http://docs.openstack.org/api/openstack-compute/2/wadl/os-compute-2.wadl",
+                          "type" : "application/vnd.sun.wadl+xml",
+                          "rel" : "describedby"
+                        } ]
+                      }
+                    },
+                    "externalValue" : ""
+                  }
+                }
+              }
             }
           },
-          "404" : {
-            "description" : "The combination of dataset name and version is not found in the system or it is not published yet to be consumed by public.",
+          "203" : {
+            "description" : "203 response",
             "content" : {
-              "application/json" : { }
+              "application/json" : {
+                "examples" : {
+                  "foo" : {
+                    "summary" : "",
+                    "description" : "",
+                    "value" : {
+                      "version" : {
+                        "status" : "CURRENT",
+                        "updated" : "2011-01-21T11:33:21Z",
+                        "media-types" : [ {
+                          "base" : "application/xml",
+                          "type" : "application/vnd.openstack.compute+xml;version=2"
+                        }, {
+                          "base" : "application/json",
+                          "type" : "application/vnd.openstack.compute+json;version=2"
+                        } ],
+                        "id" : "v2.0",
+                        "links" : [ {
+                          "href" : "http://23.253.228.211:8774/v2/",
+                          "rel" : "self"
+                        }, {
+                          "href" : "http://docs.openstack.org/api/openstack-compute/2/os-compute-devguide-2.pdf",
+                          "type" : "application/pdf",
+                          "rel" : "describedby"
+                        }, {
+                          "href" : "http://docs.openstack.org/api/openstack-compute/2/wadl/os-compute-2.wadl",
+                          "type" : "application/vnd.sun.wadl+xml",
+                          "rel" : "describedby"
+                        } ]
+                      }
+                    },
+                    "externalValue" : ""
+                  }
+                }
+              }
             }
           }
         }
@@ -98,28 +106,54 @@
       "description" : "",
       "summary" : "",
       "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "List available data sets",
+        "summary" : "List API versions",
         "description" : "",
-        "operationId" : "list-data-sets",
+        "operationId" : "listVersionsv2",
         "responses" : {
           "200" : {
-            "description" : "Returns a list of data sets",
+            "description" : "200 response",
             "content" : {
               "application/json" : {
-                "example" : {
-                  "total" : 2,
-                  "apis" : [ {
-                    "apiKey" : "oa_citations",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/oa_citations/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/oa_citations.json"
-                  }, {
-                    "apiKey" : "cancer_moonshot",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/cancer_moonshot/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/cancer_moonshot.json"
-                  } ]
+                "examples" : {
+                  "foo" : {
+                    "summary" : "",
+                    "description" : "",
+                    "value" : {
+                      "versions" : [ {
+                        "status" : "CURRENT",
+                        "updated" : "2011-01-21T11:33:21Z",
+                        "id" : "v2.0",
+                        "links" : [ {
+                          "href" : "http://127.0.0.1:8774/v2/",
+                          "rel" : "self"
+                        } ]
+                      }, {
+                        "status" : "EXPERIMENTAL",
+                        "updated" : "2013-07-23T11:33:21Z",
+                        "id" : "v3.0",
+                        "links" : [ {
+                          "href" : "http://127.0.0.1:8774/v3/",
+                          "rel" : "self"
+                        } ]
+                      } ]
+                    },
+                    "externalValue" : ""
+                  }
+                }
+              }
+            }
+          },
+          "300" : {
+            "description" : "300 response",
+            "content" : {
+              "application/json" : {
+                "examples" : {
+                  "foo" : {
+                    "summary" : "",
+                    "description" : "",
+                    "value" : "{\n \"versions\": [\n       {\n         \"status\": \"CURRENT\",\n         \"updated\": \"2011-01-21T11:33:21Z\",\n         \"id\": \"v2.0\",\n         \"links\": [\n             {\n                 \"href\": \"http://127.0.0.1:8774/v2/\",\n                 \"rel\": \"self\"\n             }\n         ]\n     },\n     {\n         \"status\": \"EXPERIMENTAL\",\n         \"updated\": \"2013-07-23T11:33:21Z\",\n         \"id\": \"v3.0\",\n         \"links\": [\n             {\n                 \"href\": \"http://127.0.0.1:8774/v3/\",\n                 \"rel\": \"self\"\n             }\n         ]\n     }\n ]\n}\n",
+                    "externalValue" : ""
+                  }
                 }
               }
             }
@@ -127,6 +161,5 @@
         }
       }
     }
-  },
-  "components" : { }
+  }
 }
\ No newline at end of file
diff --git a/gen-api-ex/callback-example_generated.json b/gen-api-ex/callback-example_generated.json
index 687e97df2cc1b19e5be3b684176e4ae1ea9d1e99..e57002b76104cbdc7375c17a434205289415ca2d 100644
--- a/gen-api-ex/callback-example_generated.json
+++ b/gen-api-ex/callback-example_generated.json
@@ -1,125 +1,55 @@
 {
-  "openapi" : "3.0.1",
+  "openapi" : "3.0.0",
   "info" : {
-    "contact" : {
-      "email" : "developer@uspto.gov",
-      "name" : "Open Data Portal",
-      "url" : "https://developer.uspto.gov"
-    },
-    "description" : "The Data Set API (DSAPI) allows the public users to discover and search USPTO exported data sets. This is a generic API that allows USPTO users to make any CSV based data files searchable through API. With the help of GET call, it returns the list of data fields that are searchable. With the help of POST call, data can be fetched based on the filters on the field names. Please note that POST call is used to search the actual data. The reason for the POST call is that it allows users to specify any complex search criteria without worry about the GET size limitations as well as encoding of the input parameters.",
+    "description" : "",
     "termsOfService" : "",
-    "title" : "USPTO Data Set API",
+    "title" : "Callback Example",
     "version" : "1.0.0"
   },
-  "tags" : [ {
-    "name" : "metadata",
-    "description" : "Find out about the data sets"
-  }, {
-    "name" : "search",
-    "description" : "Search a data set"
-  } ],
   "paths" : {
-    "/{dataset}/{version}/records" : {
+    "/streams" : {
       "description" : "",
       "summary" : "",
       "post" : {
-        "tags" : [ "search" ],
-        "summary" : "Provides search capability for the data set with the given search criteria.",
-        "description" : "This API is based on Solr/Lucene Search. The data is indexed using SOLR. This GET API returns the list of all the searchable field names that are in the Solr Index. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the Solr/Lucene Syntax. Please refer https://lucene.apache.org/core/3_6_2/queryparsersyntax.html#Overview for the query syntax. List of field names that are searchable can be determined using above GET api.",
-        "operationId" : "perform-search",
+        "summary" : "",
+        "description" : "subscribes a client to receive out-of-band data",
+        "operationId" : "",
         "parameters" : [ {
-          "description" : "Version of the dataset.",
+          "description" : "the location where data will be sent.  Must be network accessible\nby the source server\n",
           "required" : true,
-          "in" : "path",
-          "name" : "version"
-        }, {
-          "description" : "Name of the dataset. In this case, the default value is oa_citations",
-          "required" : true,
-          "in" : "path",
-          "name" : "dataset"
+          "in" : "query",
+          "name" : "callbackUrl"
         } ],
-        "requestBody" : {
-          "description" : "",
-          "content" : {
-            "application/x-www-form-urlencoded" : { }
-          }
-        },
         "responses" : {
-          "200" : {
-            "description" : "successful operation",
+          "201" : {
+            "description" : "subscription successfully created",
             "content" : {
               "application/json" : { }
             }
-          },
-          "404" : {
-            "description" : "No matching record found for the given criteria."
           }
-        }
-      }
-    },
-    "/{dataset}/{version}/fields" : {
-      "description" : "",
-      "summary" : "",
-      "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "Provides the general information about the API and the list of fields that can be used to query the dataset.",
-        "description" : "This GET API returns the list of all the searchable field names that are in the oa_citations. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the syntax options shown below.",
-        "operationId" : "list-searchable-fields",
-        "parameters" : [ {
-          "description" : "Name of the dataset.",
-          "example" : "oa_citations",
-          "required" : true,
-          "in" : "path",
-          "name" : "dataset"
-        }, {
-          "description" : "Version of the dataset.",
-          "example" : "v1",
-          "required" : true,
-          "in" : "path",
-          "name" : "version"
-        } ],
-        "responses" : {
-          "200" : {
-            "description" : "The dataset API for the given version is found and it is accessible to consume.",
-            "content" : {
-              "application/json" : { }
-            }
-          },
-          "404" : {
-            "description" : "The combination of dataset name and version is not found in the system or it is not published yet to be consumed by public.",
-            "content" : {
-              "application/json" : { }
-            }
-          }
-        }
-      }
-    },
-    "/" : {
-      "description" : "",
-      "summary" : "",
-      "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "List available data sets",
-        "description" : "",
-        "operationId" : "list-data-sets",
-        "responses" : {
-          "200" : {
-            "description" : "Returns a list of data sets",
-            "content" : {
-              "application/json" : {
-                "example" : {
-                  "total" : 2,
-                  "apis" : [ {
-                    "apiKey" : "oa_citations",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/oa_citations/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/oa_citations.json"
-                  }, {
-                    "apiKey" : "cancer_moonshot",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/cancer_moonshot/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/cancer_moonshot.json"
-                  } ]
+        },
+        "callbacks" : {
+          "onData" : {
+            "{$request.query.callbackUrl}/data" : {
+              "description" : "",
+              "summary" : "",
+              "post" : {
+                "summary" : "",
+                "description" : "",
+                "operationId" : "",
+                "requestBody" : {
+                  "description" : "subscription payload",
+                  "content" : {
+                    "application/json" : { }
+                  }
+                },
+                "responses" : {
+                  "202" : {
+                    "description" : "Your server implementation should return this HTTP status code\nif the data was received successfully\n"
+                  },
+                  "204" : {
+                    "description" : "Your server should return this HTTP status code if no longer interested\nin further updates\n"
+                  }
                 }
               }
             }
@@ -127,6 +57,5 @@
         }
       }
     }
-  },
-  "components" : { }
+  }
 }
\ No newline at end of file
diff --git a/gen-api-ex/link-example_generated.json b/gen-api-ex/link-example_generated.json
index 687e97df2cc1b19e5be3b684176e4ae1ea9d1e99..a40b072748c038db039fda64c268e27cec6e9594 100644
--- a/gen-api-ex/link-example_generated.json
+++ b/gen-api-ex/link-example_generated.json
@@ -1,92 +1,147 @@
 {
-  "openapi" : "3.0.1",
+  "openapi" : "3.0.0",
   "info" : {
-    "contact" : {
-      "email" : "developer@uspto.gov",
-      "name" : "Open Data Portal",
-      "url" : "https://developer.uspto.gov"
-    },
-    "description" : "The Data Set API (DSAPI) allows the public users to discover and search USPTO exported data sets. This is a generic API that allows USPTO users to make any CSV based data files searchable through API. With the help of GET call, it returns the list of data fields that are searchable. With the help of POST call, data can be fetched based on the filters on the field names. Please note that POST call is used to search the actual data. The reason for the POST call is that it allows users to specify any complex search criteria without worry about the GET size limitations as well as encoding of the input parameters.",
+    "description" : "",
     "termsOfService" : "",
-    "title" : "USPTO Data Set API",
+    "title" : "Link Example",
     "version" : "1.0.0"
   },
-  "tags" : [ {
-    "name" : "metadata",
-    "description" : "Find out about the data sets"
-  }, {
-    "name" : "search",
-    "description" : "Search a data set"
-  } ],
   "paths" : {
-    "/{dataset}/{version}/records" : {
+    "/2.0/repositories/{username}" : {
       "description" : "",
       "summary" : "",
-      "post" : {
-        "tags" : [ "search" ],
-        "summary" : "Provides search capability for the data set with the given search criteria.",
-        "description" : "This API is based on Solr/Lucene Search. The data is indexed using SOLR. This GET API returns the list of all the searchable field names that are in the Solr Index. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the Solr/Lucene Syntax. Please refer https://lucene.apache.org/core/3_6_2/queryparsersyntax.html#Overview for the query syntax. List of field names that are searchable can be determined using above GET api.",
-        "operationId" : "perform-search",
+      "get" : {
+        "summary" : "",
+        "description" : "",
+        "operationId" : "getRepositoriesByOwner",
         "parameters" : [ {
-          "description" : "Version of the dataset.",
+          "description" : "",
           "required" : true,
           "in" : "path",
-          "name" : "version"
-        }, {
-          "description" : "Name of the dataset. In this case, the default value is oa_citations",
+          "name" : "username"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "repositories owned by the supplied user",
+            "content" : {
+              "application/json" : { }
+            }
+          }
+        }
+      }
+    },
+    "/2.0/users/{username}" : {
+      "description" : "",
+      "summary" : "",
+      "get" : {
+        "summary" : "",
+        "description" : "",
+        "operationId" : "getUserByName",
+        "parameters" : [ {
+          "description" : "",
           "required" : true,
           "in" : "path",
-          "name" : "dataset"
+          "name" : "username"
         } ],
-        "requestBody" : {
-          "description" : "",
-          "content" : {
-            "application/x-www-form-urlencoded" : { }
-          }
-        },
         "responses" : {
           "200" : {
-            "description" : "successful operation",
+            "description" : "The User",
             "content" : {
               "application/json" : { }
             }
-          },
-          "404" : {
-            "description" : "No matching record found for the given criteria."
           }
         }
       }
     },
-    "/{dataset}/{version}/fields" : {
+    "/2.0/repositories/{username}/{slug}/pullrequests/{pid}" : {
       "description" : "",
       "summary" : "",
       "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "Provides the general information about the API and the list of fields that can be used to query the dataset.",
-        "description" : "This GET API returns the list of all the searchable field names that are in the oa_citations. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the syntax options shown below.",
-        "operationId" : "list-searchable-fields",
+        "summary" : "",
+        "description" : "",
+        "operationId" : "getPullRequestsById",
         "parameters" : [ {
-          "description" : "Name of the dataset.",
-          "example" : "oa_citations",
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "username"
+        }, {
+          "description" : "",
           "required" : true,
           "in" : "path",
-          "name" : "dataset"
+          "name" : "slug"
         }, {
-          "description" : "Version of the dataset.",
-          "example" : "v1",
+          "description" : "",
           "required" : true,
           "in" : "path",
-          "name" : "version"
+          "name" : "pid"
         } ],
         "responses" : {
           "200" : {
-            "description" : "The dataset API for the given version is found and it is accessible to consume.",
+            "description" : "a pull request object",
             "content" : {
               "application/json" : { }
             }
-          },
-          "404" : {
-            "description" : "The combination of dataset name and version is not found in the system or it is not published yet to be consumed by public.",
+          }
+        }
+      }
+    },
+    "/2.0/repositories/{username}/{slug}/pullrequests/{pid}/merge" : {
+      "description" : "",
+      "summary" : "",
+      "post" : {
+        "summary" : "",
+        "description" : "",
+        "operationId" : "mergePullRequest",
+        "parameters" : [ {
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "username"
+        }, {
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "slug"
+        }, {
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "pid"
+        } ],
+        "responses" : {
+          "204" : {
+            "description" : "the PR was successfully merged"
+          }
+        }
+      }
+    },
+    "/2.0/repositories/{username}/{slug}/pullrequests" : {
+      "description" : "",
+      "summary" : "",
+      "get" : {
+        "summary" : "",
+        "description" : "",
+        "operationId" : "getPullRequestsByRepository",
+        "parameters" : [ {
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "username"
+        }, {
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "slug"
+        }, {
+          "description" : "",
+          "required" : false,
+          "in" : "query",
+          "name" : "state"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "an array of pull request objects",
             "content" : {
               "application/json" : { }
             }
@@ -94,39 +149,73 @@
         }
       }
     },
-    "/" : {
+    "/2.0/repositories/{username}/{slug}" : {
       "description" : "",
       "summary" : "",
       "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "List available data sets",
+        "summary" : "",
         "description" : "",
-        "operationId" : "list-data-sets",
+        "operationId" : "getRepository",
+        "parameters" : [ {
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "username"
+        }, {
+          "description" : "",
+          "required" : true,
+          "in" : "path",
+          "name" : "slug"
+        } ],
         "responses" : {
           "200" : {
-            "description" : "Returns a list of data sets",
+            "description" : "The repository",
             "content" : {
-              "application/json" : {
-                "example" : {
-                  "total" : 2,
-                  "apis" : [ {
-                    "apiKey" : "oa_citations",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/oa_citations/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/oa_citations.json"
-                  }, {
-                    "apiKey" : "cancer_moonshot",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/cancer_moonshot/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/cancer_moonshot.json"
-                  } ]
-                }
-              }
+              "application/json" : { }
             }
           }
         }
       }
     }
   },
-  "components" : { }
+  "components" : {
+    "links" : {
+      "UserRepositories" : {
+        "operationId" : "getRepositoriesByOwner",
+        "operationRef" : "",
+        "parameters" : {
+          "username" : "$response.body#/username"
+        },
+        "description" : ""
+      },
+      "UserRepository" : {
+        "operationId" : "getRepository",
+        "operationRef" : "",
+        "parameters" : {
+          "slug" : "$response.body#/slug",
+          "username" : "$response.body#/owner/username"
+        },
+        "description" : ""
+      },
+      "PullRequestMerge" : {
+        "operationId" : "mergePullRequest",
+        "operationRef" : "",
+        "parameters" : {
+          "pid" : "$response.body#/id",
+          "slug" : "$response.body#/repository/slug",
+          "username" : "$response.body#/author/username"
+        },
+        "description" : ""
+      },
+      "RepositoryPullRequests" : {
+        "operationId" : "getPullRequestsByRepository",
+        "operationRef" : "",
+        "parameters" : {
+          "slug" : "$response.body#/slug",
+          "username" : "$response.body#/owner/username"
+        },
+        "description" : ""
+      }
+    }
+  }
 }
\ No newline at end of file
diff --git a/gen-api-ex/petstore-expanded_generated.json b/gen-api-ex/petstore-expanded_generated.json
index 687e97df2cc1b19e5be3b684176e4ae1ea9d1e99..234a287e867afd5115636162ef09da7ce75b12a8 100644
--- a/gen-api-ex/petstore-expanded_generated.json
+++ b/gen-api-ex/petstore-expanded_generated.json
@@ -1,127 +1,127 @@
 {
-  "openapi" : "3.0.1",
+  "openapi" : "3.0.0",
   "info" : {
     "contact" : {
-      "email" : "developer@uspto.gov",
-      "name" : "Open Data Portal",
-      "url" : "https://developer.uspto.gov"
+      "email" : "apiteam@swagger.io",
+      "name" : "Swagger API Team",
+      "url" : "http://swagger.io"
+    },
+    "description" : "http://swagger.io/terms/",
+    "license" : {
+      "name" : "Apache 2.0",
+      "url" : "https://www.apache.org/licenses/LICENSE-2.0.html"
     },
-    "description" : "The Data Set API (DSAPI) allows the public users to discover and search USPTO exported data sets. This is a generic API that allows USPTO users to make any CSV based data files searchable through API. With the help of GET call, it returns the list of data fields that are searchable. With the help of POST call, data can be fetched based on the filters on the field names. Please note that POST call is used to search the actual data. The reason for the POST call is that it allows users to specify any complex search criteria without worry about the GET size limitations as well as encoding of the input parameters.",
     "termsOfService" : "",
-    "title" : "USPTO Data Set API",
+    "title" : "Swagger Petstore",
     "version" : "1.0.0"
   },
-  "tags" : [ {
-    "name" : "metadata",
-    "description" : "Find out about the data sets"
-  }, {
-    "name" : "search",
-    "description" : "Search a data set"
-  } ],
   "paths" : {
-    "/{dataset}/{version}/records" : {
+    "/pets/{id}" : {
       "description" : "",
       "summary" : "",
-      "post" : {
-        "tags" : [ "search" ],
-        "summary" : "Provides search capability for the data set with the given search criteria.",
-        "description" : "This API is based on Solr/Lucene Search. The data is indexed using SOLR. This GET API returns the list of all the searchable field names that are in the Solr Index. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the Solr/Lucene Syntax. Please refer https://lucene.apache.org/core/3_6_2/queryparsersyntax.html#Overview for the query syntax. List of field names that are searchable can be determined using above GET api.",
-        "operationId" : "perform-search",
+      "get" : {
+        "summary" : "",
+        "description" : "Returns a user based on a single ID, if the user does not have access to the pet",
+        "operationId" : "find pet by id",
         "parameters" : [ {
-          "description" : "Version of the dataset.",
+          "description" : "ID of pet to fetch",
           "required" : true,
           "in" : "path",
-          "name" : "version"
-        }, {
-          "description" : "Name of the dataset. In this case, the default value is oa_citations",
+          "name" : "id"
+        } ],
+        "responses" : {
+          "200" : {
+            "description" : "pet response",
+            "content" : {
+              "application/json" : { }
+            }
+          },
+          "default" : {
+            "description" : "unexpected error",
+            "content" : {
+              "application/json" : { }
+            }
+          }
+        }
+      },
+      "delete" : {
+        "summary" : "",
+        "description" : "deletes a single pet based on the ID supplied",
+        "operationId" : "deletePet",
+        "parameters" : [ {
+          "description" : "ID of pet to delete",
           "required" : true,
           "in" : "path",
-          "name" : "dataset"
+          "name" : "id"
         } ],
-        "requestBody" : {
-          "description" : "",
-          "content" : {
-            "application/x-www-form-urlencoded" : { }
-          }
-        },
         "responses" : {
-          "200" : {
-            "description" : "successful operation",
+          "default" : {
+            "description" : "unexpected error",
             "content" : {
               "application/json" : { }
             }
           },
-          "404" : {
-            "description" : "No matching record found for the given criteria."
+          "204" : {
+            "description" : "pet deleted"
           }
         }
       }
     },
-    "/{dataset}/{version}/fields" : {
+    "/pets" : {
       "description" : "",
       "summary" : "",
       "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "Provides the general information about the API and the list of fields that can be used to query the dataset.",
-        "description" : "This GET API returns the list of all the searchable field names that are in the oa_citations. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the syntax options shown below.",
-        "operationId" : "list-searchable-fields",
+        "summary" : "",
+        "description" : "Returns all pets from the system that the user has access to\nNam sed condimentum est. Maecenas tempor sagittis sapien, nec rhoncus sem sagittis sit amet. Aenean at gravida augue, ac iaculis sem. Curabitur odio lorem, ornare eget elementum nec, cursus id lectus. Duis mi turpis, pulvinar ac eros ac, tincidunt varius justo. In hac habitasse platea dictumst. Integer at adipiscing ante, a sagittis ligula. Aenean pharetra tempor ante molestie imperdiet. Vivamus id aliquam diam. Cras quis velit non tortor eleifend sagittis. Praesent at enim pharetra urna volutpat venenatis eget eget mauris. In eleifend fermentum facilisis. Praesent enim enim, gravida ac sodales sed, placerat id erat. Suspendisse lacus dolor, consectetur non augue vel, vehicula interdum libero. Morbi euismod sagittis libero sed lacinia.\n\nSed tempus felis lobortis leo pulvinar rutrum. Nam mattis velit nisl, eu condimentum ligula luctus nec. Phasellus semper velit eget aliquet faucibus. In a mattis elit. Phasellus vel urna viverra, condimentum lorem id, rhoncus nibh. Ut pellentesque posuere elementum. Sed a varius odio. Morbi rhoncus ligula libero, vel eleifend nunc tristique vitae. Fusce et sem dui. Aenean nec scelerisque tortor. Fusce malesuada accumsan magna vel tempus. Quisque mollis felis eu dolor tristique, sit amet auctor felis gravida. Sed libero lorem, molestie sed nisl in, accumsan tempor nisi. Fusce sollicitudin massa ut lacinia mattis. Sed vel eleifend lorem. Pellentesque vitae felis pretium, pulvinar elit eu, euismod sapien.\n",
+        "operationId" : "findPets",
         "parameters" : [ {
-          "description" : "Name of the dataset.",
-          "example" : "oa_citations",
-          "required" : true,
-          "in" : "path",
-          "name" : "dataset"
+          "description" : "tags to filter by",
+          "required" : false,
+          "in" : "query",
+          "name" : "tags"
         }, {
-          "description" : "Version of the dataset.",
-          "example" : "v1",
-          "required" : true,
-          "in" : "path",
-          "name" : "version"
+          "description" : "maximum number of results to return",
+          "required" : false,
+          "in" : "query",
+          "name" : "limit"
         } ],
         "responses" : {
           "200" : {
-            "description" : "The dataset API for the given version is found and it is accessible to consume.",
+            "description" : "pet response",
             "content" : {
               "application/json" : { }
             }
           },
-          "404" : {
-            "description" : "The combination of dataset name and version is not found in the system or it is not published yet to be consumed by public.",
+          "default" : {
+            "description" : "unexpected error",
             "content" : {
               "application/json" : { }
             }
           }
         }
-      }
-    },
-    "/" : {
-      "description" : "",
-      "summary" : "",
-      "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "List available data sets",
-        "description" : "",
-        "operationId" : "list-data-sets",
+      },
+      "post" : {
+        "summary" : "",
+        "description" : "Creates a new pet in the store. Duplicates are allowed",
+        "operationId" : "addPet",
+        "requestBody" : {
+          "description" : "Pet to add to the store",
+          "required" : true,
+          "content" : {
+            "application/json" : { }
+          }
+        },
         "responses" : {
           "200" : {
-            "description" : "Returns a list of data sets",
+            "description" : "pet response",
             "content" : {
-              "application/json" : {
-                "example" : {
-                  "total" : 2,
-                  "apis" : [ {
-                    "apiKey" : "oa_citations",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/oa_citations/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/oa_citations.json"
-                  }, {
-                    "apiKey" : "cancer_moonshot",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/cancer_moonshot/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/cancer_moonshot.json"
-                  } ]
-                }
-              }
+              "application/json" : { }
+            }
+          },
+          "default" : {
+            "description" : "unexpected error",
+            "content" : {
+              "application/json" : { }
             }
           }
         }
diff --git a/gen-api-ex/petstore_generated.json b/gen-api-ex/petstore_generated.json
index 687e97df2cc1b19e5be3b684176e4ae1ea9d1e99..64d1dcf6a12aa8f2dc7f8c02c445c520aabb41df 100644
--- a/gen-api-ex/petstore_generated.json
+++ b/gen-api-ex/petstore_generated.json
@@ -1,131 +1,99 @@
 {
-  "openapi" : "3.0.1",
+  "openapi" : "3.0.0",
   "info" : {
-    "contact" : {
-      "email" : "developer@uspto.gov",
-      "name" : "Open Data Portal",
-      "url" : "https://developer.uspto.gov"
+    "description" : "",
+    "license" : {
+      "name" : "MIT",
+      "url" : ""
     },
-    "description" : "The Data Set API (DSAPI) allows the public users to discover and search USPTO exported data sets. This is a generic API that allows USPTO users to make any CSV based data files searchable through API. With the help of GET call, it returns the list of data fields that are searchable. With the help of POST call, data can be fetched based on the filters on the field names. Please note that POST call is used to search the actual data. The reason for the POST call is that it allows users to specify any complex search criteria without worry about the GET size limitations as well as encoding of the input parameters.",
     "termsOfService" : "",
-    "title" : "USPTO Data Set API",
+    "title" : "Swagger Petstore",
     "version" : "1.0.0"
   },
-  "tags" : [ {
-    "name" : "metadata",
-    "description" : "Find out about the data sets"
-  }, {
-    "name" : "search",
-    "description" : "Search a data set"
-  } ],
   "paths" : {
-    "/{dataset}/{version}/records" : {
+    "/pets" : {
       "description" : "",
       "summary" : "",
-      "post" : {
-        "tags" : [ "search" ],
-        "summary" : "Provides search capability for the data set with the given search criteria.",
-        "description" : "This API is based on Solr/Lucene Search. The data is indexed using SOLR. This GET API returns the list of all the searchable field names that are in the Solr Index. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the Solr/Lucene Syntax. Please refer https://lucene.apache.org/core/3_6_2/queryparsersyntax.html#Overview for the query syntax. List of field names that are searchable can be determined using above GET api.",
-        "operationId" : "perform-search",
+      "get" : {
+        "tags" : [ "pets" ],
+        "summary" : "List all pets",
+        "description" : "",
+        "operationId" : "listPets",
         "parameters" : [ {
-          "description" : "Version of the dataset.",
-          "required" : true,
-          "in" : "path",
-          "name" : "version"
-        }, {
-          "description" : "Name of the dataset. In this case, the default value is oa_citations",
-          "required" : true,
-          "in" : "path",
-          "name" : "dataset"
+          "description" : "How many items to return at one time (max 100)",
+          "required" : false,
+          "in" : "query",
+          "name" : "limit"
         } ],
-        "requestBody" : {
-          "description" : "",
-          "content" : {
-            "application/x-www-form-urlencoded" : { }
-          }
-        },
         "responses" : {
           "200" : {
-            "description" : "successful operation",
+            "description" : "A paged array of pets",
+            "headers" : {
+              "x-next" : {
+                "description" : "A link to the next page of responses",
+                "required" : false,
+                "style" : ""
+              }
+            },
             "content" : {
               "application/json" : { }
             }
           },
-          "404" : {
-            "description" : "No matching record found for the given criteria."
+          "default" : {
+            "description" : "unexpected error",
+            "content" : {
+              "application/json" : { }
+            }
+          }
+        }
+      },
+      "post" : {
+        "tags" : [ "pets" ],
+        "summary" : "Create a pet",
+        "description" : "",
+        "operationId" : "createPets",
+        "responses" : {
+          "default" : {
+            "description" : "unexpected error",
+            "content" : {
+              "application/json" : { }
+            }
+          },
+          "201" : {
+            "description" : "Null response"
           }
         }
       }
     },
-    "/{dataset}/{version}/fields" : {
+    "/pets/{petId}" : {
       "description" : "",
       "summary" : "",
       "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "Provides the general information about the API and the list of fields that can be used to query the dataset.",
-        "description" : "This GET API returns the list of all the searchable field names that are in the oa_citations. Please see the 'fields' attribute which returns an array of field names. Each field or a combination of fields can be searched using the syntax options shown below.",
-        "operationId" : "list-searchable-fields",
+        "tags" : [ "pets" ],
+        "summary" : "Info for a specific pet",
+        "description" : "",
+        "operationId" : "showPetById",
         "parameters" : [ {
-          "description" : "Name of the dataset.",
-          "example" : "oa_citations",
-          "required" : true,
-          "in" : "path",
-          "name" : "dataset"
-        }, {
-          "description" : "Version of the dataset.",
-          "example" : "v1",
+          "description" : "The id of the pet to retrieve",
           "required" : true,
           "in" : "path",
-          "name" : "version"
+          "name" : "petId"
         } ],
         "responses" : {
           "200" : {
-            "description" : "The dataset API for the given version is found and it is accessible to consume.",
+            "description" : "Expected response to a valid request",
             "content" : {
               "application/json" : { }
             }
           },
-          "404" : {
-            "description" : "The combination of dataset name and version is not found in the system or it is not published yet to be consumed by public.",
+          "default" : {
+            "description" : "unexpected error",
             "content" : {
               "application/json" : { }
             }
           }
         }
       }
-    },
-    "/" : {
-      "description" : "",
-      "summary" : "",
-      "get" : {
-        "tags" : [ "metadata" ],
-        "summary" : "List available data sets",
-        "description" : "",
-        "operationId" : "list-data-sets",
-        "responses" : {
-          "200" : {
-            "description" : "Returns a list of data sets",
-            "content" : {
-              "application/json" : {
-                "example" : {
-                  "total" : 2,
-                  "apis" : [ {
-                    "apiKey" : "oa_citations",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/oa_citations/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/oa_citations.json"
-                  }, {
-                    "apiKey" : "cancer_moonshot",
-                    "apiVersionNumber" : "v1",
-                    "apiUrl" : "https://developer.uspto.gov/ds-api/cancer_moonshot/v1/fields",
-                    "apiDocumentationUrl" : "https://developer.uspto.gov/ds-api-docs/index.html?url=https://developer.uspto.gov/ds-api/swagger/docs/cancer_moonshot.json"
-                  } ]
-                }
-              }
-            }
-          }
-        }
-      }
     }
   },
   "components" : { }
diff --git a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java
index 010b78bf970f2693a5c5428aa4671bf6968e4ab1..64376fd97762866e7fc0c42f48ae37ffb3297e0d 100644
--- a/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java
+++ b/src/main/java/de/tudresden/inf/st/openapi/OpenAPIMain.java
@@ -33,8 +33,8 @@ public class OpenAPIMain {
     public static void main(String[] args) throws IOException, ResolutionException, ValidationException, EncodeException {
         OpenAPIObject openApi;
         OpenApi3 api3;
-        String fileName = "uspto.json";
-        FileWriter writer = new FileWriter("./gen-api-ex/api-with-examples_generated.json");
+        String fileName = "petstore-expanded.json";
+        FileWriter writer = new FileWriter("./gen-api-ex/petstore-expanded_generated.json");
 
         URL expUrl = OpenAPIMain.class.getClassLoader().getResource(fileName);
         File file = null;