diff --git a/app/__init__.py b/app/__init__.py
index a5924304fcd20d534927057fe0ec8aa01147286d..19bfa51737e2f5204ccb805b9a79b1659a191326 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -1,6 +1,5 @@
 from config import config
 from flask import Flask
-# from flask_apscheduler import APScheduler
 from flask_login import LoginManager
 from flask_mail import Mail
 from flask_socketio import SocketIO
@@ -11,7 +10,6 @@ db = SQLAlchemy()
 login_manager = LoginManager()
 login_manager.login_view = 'auth.login'
 mail = Mail()
-# scheduler = APScheduler()
 socketio = SocketIO()
 
 
@@ -27,8 +25,6 @@ def create_app(config_name, main=True):
 
     login_manager.init_app(app)
     mail.init_app(app)
-    # scheduler.init_app(app)
-    # scheduler.start()
     socketio.init_app(app, message_qeue='redis://')
 
     from .auth import auth as auth_blueprint
diff --git a/app/scheduler_functions.py b/app/scheduler_functions.py
deleted file mode 100644
index 8199922ddc361a0ac29ae50d7ba96370b219c0fa..0000000000000000000000000000000000000000
--- a/app/scheduler_functions.py
+++ /dev/null
@@ -1,82 +0,0 @@
-from datetime import datetime
-from . import db, scheduler
-from .models import Job
-import docker
-import json
-import os
-
-
-def checkout_jobs():
-    with scheduler.app.app_context():
-        client = docker.from_env()
-        jobs = db.session.query(Job)
-        for job in jobs.filter_by(status='submitted').all():
-            _command = (job.service
-                        + ' -i /files'
-                        + ' -o /files/output'
-                        + ' ' + ' '.join(json.loads(job.service_args)))
-            _constraints = ['node.role==worker']
-            _image = 'gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/{}:{}'.format(
-                job.service,
-                job.service_version
-            )
-            _labels = {'service': job.service}
-            _mounts = [os.path.join('/home/compute/mnt/opaque',
-                                    str(job.user_id),
-                                    'jobs',
-                                    str(job.id))
-                       + ':/files:rw']
-            _name = str(job.id)
-            '''
-            ' The Docker SDK for Python expects the cpu_reservation value to be
-            ' scaled to nanos (10^9). Because the job object contains unscaled
-            ' (10^0) values, it must be conveted.
-            '
-            ' While the cpu_reservation value has to be in nanos, the
-            ' mem_reservation value must be presented in an unscaled form
-            ' (intuitive right?). Bacause the job object provides the memory
-            ' value in megabytes, it is also necessary to convert the value.
-            '''
-            _resources = docker.types.Resources(
-                cpu_reservation=job.n_cores * (10 ** 9),
-                mem_reservation=job.mem_mb * (10 ** 6)
-            )
-            _restart_policy = docker.types.RestartPolicy(condition='none')
-            try:
-                service = client.services.create(
-                    _image,
-                    command=_command,
-                    constraints=_constraints,
-                    labels=_labels,
-                    mounts=_mounts,
-                    name=_name,
-                    resources=_resources,
-                    restart_policy=_restart_policy
-                )
-                job.status = 'scheduled'
-            except docker.errors.APIError:
-                job.status = 'failed'
-                print('[ERROR] {}: client.services.create raised APIError'
-                      .format(job.id))
-        for job in jobs.filter(Job.status != 'complete',
-                               Job.status != 'failed',
-                               Job.status != 'submitted').all():
-            try:
-                service = client.services.get(str(job.id))
-                job.status = service.tasks()[0].get('Status').get('State')
-                if job.status == 'complete' or job.status == 'failed':
-                    job.end_date = datetime.utcnow()
-                    service.remove()
-            except docker.errors.APIError:
-                job.status = 'failed'
-                print('[ERROR] {}: client.services.get raised APIError'
-                      .format(job.id))
-            except docker.errors.NotFound:
-                job.status = 'failed'
-                print('[ERROR] {}: client.services.get raised NotFound'
-                      .format(job.id))
-            except docker.errors.InvalidVersion:
-                job.status = 'failed'
-                print('[ERROR] {}: client.services.get raised InvalidVersion'
-                      .format(job.id))
-        db.session.commit()
diff --git a/app/static/js/CorpusList.js b/app/static/js/CorpusList.js
index 7890f1e9424164f9bdc8391ea3d976cc641b9c21..7da3da97a34cc1209901005c55840073f0834e61 100644
--- a/app/static/js/CorpusList.js
+++ b/app/static/js/CorpusList.js
@@ -10,6 +10,7 @@ class CorpusList extends List {
       this.addCorpus(corpus);
     }
 
+    this.update()
     List.updatePagination(this);
   }
 
@@ -22,10 +23,13 @@ class CorpusList extends List {
       switch(operation.op) {
         case "add":
           this.addCorpus(operation.value);
+          this.update()
+          List.updatePagination(this);
           break;
         case "remove":
           if (pathArray.length != 1) {break;}
           this.remove("id", pathArray[0]);
+          List.updatePagination(this);
           break;
         case "replace":
           if (pathArray.length != 2) {break;}
diff --git a/app/static/js/JobList.js b/app/static/js/JobList.js
index 4553ded57466cdd08dff0b3dfae906a9ab891cf6..745c98cfbb45d6a92f37d3763fed72c0b249102e 100644
--- a/app/static/js/JobList.js
+++ b/app/static/js/JobList.js
@@ -10,6 +10,7 @@ class JobList extends List {
       this.addJob(job);
     }
 
+    this.update()
     List.updatePagination(this);
   }
 
@@ -23,10 +24,13 @@ class JobList extends List {
       switch(operation.op) {
         case "add":
           this.addJob(operation.value);
+          this.update();
+          List.updatePagination(this);
           break;
         case "remove":
           if (pathArray.length != 1) {break;}
           this.remove("id", pathArray[0]);
+          List.updatePagination(this);
           break;
         case "replace":
           if (pathArray.length != 2) {break;}
@@ -52,6 +56,7 @@ class JobList extends List {
               jobStatusElement.classList.remove(statusColor);
               jobStatusElement.classList.add(newStatusColor);
               jobStatusElement.innerHTML = operation.value;
+              break;
             case "title":
               item.values({"title": operation.value});
               break;
@@ -109,7 +114,9 @@ class JobList extends List {
 
     this.add(
       [{description: job.description, id: job.id, title: job.title}],
-      function(items) {items[0].elm = jobElement;}
+      (items) => {
+        items[0].elm = jobElement;
+      }
     );
   }
 }
diff --git a/requirements.txt b/requirements.txt
index bff2639910a569831bc40cfe508f1c9df3d11d29..2592d0010576f6165ac1f5235eb52a455bcb4a59 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,7 +1,5 @@
-docker
 eventlet
 Flask
-Flask-APScheduler
 Flask-Login
 Flask-Mail
 Flask-Migrate