diff --git a/runhelper/parameterstudy.py b/runhelper/parameterstudy.py
index 716332f56cb4f0bd0371fca226f10726e8f318ad..6a4089f1696a19784af3e4e07ef3399f65600e9d 100644
--- a/runhelper/parameterstudy.py
+++ b/runhelper/parameterstudy.py
@@ -35,6 +35,7 @@ class ParameterStudy:
           ...     ps.add_combinations( [('p1', [1, 2]),
           ...                           ('p3', ['x', 'y'])], constant_parameters={'p2': 5, 'p4': 'z' })
           ...     ps.run()
+          ...     ps.run_scenarios_not_in_database()
           ...     ps.run_from_command_line(argv=['local'])  # alternative to run - exposes a command line interface if
           ...                                               # no argv is passed. Does not run anything here, because
           ...                                               # configuration already in database are skipped
@@ -192,11 +193,11 @@ class ParameterStudy:
                 mapping = {'/next_scenario': self.next_scenario,
                            '/result': self.result}
                 if self.path in mapping.keys():
-                    data = self.rfile.read(int(self.headers['Content-Length']))
+                    data = self._read_contents()
                     self.send_response(200)
                     self.send_header("Content-type", "application/json")
                     self.end_headers()
-                    json_data = json.loads(data.decode())
+                    json_data = json.loads(data)
                     response = mapping[self.path](json_data)
                     self.wfile.write(json.dumps(response).encode())
                 else:
@@ -206,6 +207,9 @@ class ParameterStudy:
             def do_GET(self):
                 return self.do_POST()
 
+            def _read_contents(self):
+                return self.rfile.read(int(self.headers['Content-Length'])).decode()
+
             def log_message(self, fmt, *args):
                 return