diff --git a/package-lock.json b/package-lock.json
index 0c898dbad3ddda421c082486a4ed45aa130f7c86..b1940b0a4bdc701af673505bbf6dc301a37c03eb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -363,12 +363,11 @@
       "integrity": "sha512-tphpf9QHnOPoL2Jl7KpR+R5aHNW3oifLEmRUTajJYJGvo1uzdUDE82+V9OGOinxJsYseCth9gYJhN24aYTB9NA=="
     },
     "@angular/cdk": {
-      "version": "8.2.3",
-      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-8.2.3.tgz",
-      "integrity": "sha512-ZwO5Sn720RA2YvBqud0JAHkZXjmjxM0yNzCO8RVtRE9i8Gl26Wk0j0nQeJkVm4zwv2QO8MwbKUKGTMt8evsokA==",
+      "version": "9.2.4",
+      "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-9.2.4.tgz",
+      "integrity": "sha512-iw2+qHMXHYVC6K/fttHeNHIieSKiTEodVutZoOEcBu9rmRTGbLB26V/CRsfIRmA1RBk+uFYWc6UQZnMC3RdnJQ==",
       "requires": {
-        "parse5": "^5.0.0",
-        "tslib": "^1.7.1"
+        "parse5": "^5.0.0"
       },
       "dependencies": {
         "parse5": {
@@ -660,26 +659,15 @@
       "integrity": "sha512-WVA/eh3fzjx0apOzkKot4YRRUsGkHj50zFQWrAOMgivGaj1YVrvhf+m3hpglj5fn/BkLiFDl8RT0wAE8z9X+gQ=="
     },
     "@angular/flex-layout": {
-      "version": "8.0.0-beta.27",
-      "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-8.0.0-beta.27.tgz",
-      "integrity": "sha512-qmpvQPesU4ZQ56IscwgmVRpK2UnyV+gwvXUql7TMv0QV215hLcHczjGsrKkLfW2By5E7XEyDat9br72uVXcPMw==",
-      "requires": {
-        "tslib": "^1.7.1"
-      }
+      "version": "9.0.0-beta.31",
+      "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-9.0.0-beta.31.tgz",
+      "integrity": "sha512-g94u2mecDl87ORvFRuOBshV/S/ETE4bybClU2e1xXKWNG+rhRHchChneHSonc29ZLyROTjHhmAtKOYojL92uLA=="
     },
     "@angular/forms": {
       "version": "9.1.12",
       "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.1.12.tgz",
       "integrity": "sha512-LhjnZlC4WEsEsAJfOZLte+Lks3WBAFVeRv2lzoQNFVr/IMzBNDVfjEaaSqKF1cei3cjY39Df2nYDMJM7HfqbJA=="
     },
-    "@angular/http": {
-      "version": "7.2.15",
-      "resolved": "https://registry.npmjs.org/@angular/http/-/http-7.2.15.tgz",
-      "integrity": "sha512-TR7PEdmLWNIre3Zn8lvyb4lSrvPUJhKLystLnp4hBMcWsJqq5iK8S3bnlR4viZ9HMlf7bW7+Hm4SI6aB3tdUtw==",
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
     "@angular/language-service": {
       "version": "9.1.12",
       "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.1.12.tgz",
@@ -687,12 +675,9 @@
       "dev": true
     },
     "@angular/material": {
-      "version": "8.2.3",
-      "resolved": "https://registry.npmjs.org/@angular/material/-/material-8.2.3.tgz",
-      "integrity": "sha512-SOczkIaqes+r+9XF/UUiokidfFKBpHkOPIaFK857sFD0FBNPvPEpOr5oHKCG3feERRwAFqHS7Wo2ohVEWypb5A==",
-      "requires": {
-        "tslib": "^1.7.1"
-      }
+      "version": "9.2.4",
+      "resolved": "https://registry.npmjs.org/@angular/material/-/material-9.2.4.tgz",
+      "integrity": "sha512-LkoTXE6B0slvMhvfZDdPWaz4yaYLkaAp5VSPunI9pxGsPxzqEV9e210wC1/sjG/76Nk8Ep7/2z9XKac8Q9bMwA=="
     },
     "@angular/platform-browser": {
       "version": "9.1.12",
@@ -6630,11 +6615,6 @@
       "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
       "dev": true
     },
-    "hammerjs": {
-      "version": "2.0.8",
-      "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz",
-      "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE="
-    },
     "handle-thing": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
diff --git a/package.json b/package.json
index 8c9f34aaf03dbdc6529a8e68a46269d885ebd8e5..a7826332bb764b3d442ba571de0dd43e626f6471 100644
--- a/package.json
+++ b/package.json
@@ -13,19 +13,18 @@
   "private": true,
   "dependencies": {
     "@angular/animations": "9.1.12",
-    "@angular/cdk": "^8.2.3",
+    "@angular/cdk": "^9.2.4",
     "@angular/common": "9.1.12",
     "@angular/compiler": "9.1.12",
     "@angular/core": "9.1.12",
-    "@angular/flex-layout": "^8.0.0-beta.27",
+    "@angular/flex-layout": "^9.0.0-beta.31",
     "@angular/forms": "9.1.12",
-    "@angular/material": "^8.2.3",
+    "@angular/material": "^9.2.4",
     "@angular/platform-browser": "9.1.12",
     "@angular/platform-browser-dynamic": "9.1.12",
     "@angular/router": "9.1.12",
     "buffer": "^5.5.0",
     "core-js": "^3.6.4",
-    "hammerjs": "^2.0.8",
     "jwk-to-ssh": "^1.2.0",
     "keypair": "^1.0.1",
     "node-forge": "^0.8.5",
diff --git a/src/app/aboutus/aboutus.component.ts b/src/app/aboutus/aboutus.component.ts
index 65fda1a2858cb06e279a120bec768261b669165a..b7e02f60f0eb83477a7c98172559a0aec03e57a4 100644
--- a/src/app/aboutus/aboutus.component.ts
+++ b/src/app/aboutus/aboutus.component.ts
@@ -5,7 +5,7 @@ import {OverlayContainer} from '@angular/cdk/overlay';
 import { AuthorisationService } from '../authorisation.service';
 import { ComputesitesService } from '../computesites.service';
 import { Location } from '@angular/common';
-import { MatButtonToggleGroup } from '@angular/material';
+import { MatButtonToggleGroup } from '@angular/material/button-toggle';
 
 @Component({
   selector: 'app-aboutus',
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 994f1fcbda2dfef5d59e91864f917308281df469..5dae0c536a35908c478d802dd81f70f4178c91cf 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -3,7 +3,7 @@ import { TesService } from './tes.service';
 import { AuthorisationService} from './authorisation.service';
 import { ComputesitesService} from './computesites.service';
 import {BehaviorSubject} from 'rxjs/BehaviorSubject';
-import { MatSnackBar } from '@angular/material';
+import { MatSnackBar } from '@angular/material/snack-bar';
 import { Computesite, Health } from './computesite';
 import {SettingsService } from './settings.service';
 import {BrowserWindowService} from './browser-window.service';
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 386730c657402a61ab74d0b4173ef93825ae1d02..c864c445cfed4bfc8b69398e744e44d51570bf69 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -5,18 +5,19 @@ import { NgModule } from '@angular/core';
 import { AppComponent } from './app.component';
 import { LauncherComponent } from './launcher/launcher.component';
 import { JoblistComponent } from './joblist/joblist.component';
-import { MatButtonModule } from '@angular/material';
-import { MatButtonToggleModule} from '@angular/material';
-import { MatFormFieldModule } from '@angular/material';
-import { MatOptionModule } from '@angular/material';
-import { MatInputModule } from '@angular/material';
-import { MatSelectModule } from '@angular/material';
-import { MatListModule} from '@angular/material';
+import { MatButtonModule } from '@angular/material/button';
+import { MatButtonToggleModule } from '@angular/material/button-toggle';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatOptionModule } from '@angular/material/core';
+import { MatInputModule } from '@angular/material/input';
+import { MatSelectModule } from '@angular/material/select';
+import { MatListModule } from '@angular/material/list';
 import { MatTableModule } from '@angular/material/table';
-import { MatCardModule, MatTabsModule } from '@angular/material';
-import { MatToolbarModule } from '@angular/material';
-import { MatDialogModule, MatDialog } from '@angular/material';
-import { MatSnackBarModule } from "@angular/material";
+import { MatCardModule } from '@angular/material/card';
+import { MatTabsModule } from '@angular/material/tabs';
+import { MatToolbarModule } from '@angular/material/toolbar';
+import { MatDialogModule, MatDialog } from '@angular/material/dialog';
+import { MatSnackBarModule } from "@angular/material/snack-bar";
 import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
 import { MatProgressBarModule } from '@angular/material/progress-bar';
 import { NoopAnimationsModule } from '@angular/platform-browser/animations';
@@ -25,8 +26,8 @@ import { AuthorisationService } from './authorisation.service';
 import { JobsService } from './jobs.service';
 import { FlexLayoutModule } from '@angular/flex-layout';
 import { FileExplorerModule } from './file-explorer/file-explorer.module';
-import { MatMenuModule } from '@angular/material';
-import { MatBadgeModule } from '@angular/material';
+import { MatMenuModule } from '@angular/material/menu';
+import { MatBadgeModule } from '@angular/material/badge';
 
 
 import { TesService} from './tes.service';
@@ -43,11 +44,13 @@ import { AppRoutingModule } from './/app-routing.module';
 import { LogoutdialogComponent } from './logoutdialog/logoutdialog.component';
 // import { LaunchdialogComponent } from './launchdialog/launchdialog.component';
 
-import { MatCheckboxModule} from '@angular/material';
-import { MatSidenavModule, MatExpansionModule, MatIconModule } from '@angular/material';
+import { MatCheckboxModule } from '@angular/material/checkbox';
+import { MatExpansionModule } from '@angular/material/expansion';
+import { MatIconModule } from '@angular/material/icon';
+import { MatSidenavModule } from '@angular/material/sidenav';
 import {MatAutocompleteSelectedEvent, MatAutocomplete, MatAutocompleteModule} from '@angular/material/autocomplete';
-import {MatChipsModule} from '@angular/material';
-import {MatSlideToggleModule} from '@angular/material';
+import { MatChipsModule } from '@angular/material/chips';
+import { MatSlideToggleModule } from '@angular/material/slide-toggle';
 import { StrudelapplistComponent } from './strudelapplist/strudelapplist.component';
 import { KeygenComponent } from './keygen/keygen.component';
 import { TransferComponent } from './transfer/transfer.component';
diff --git a/src/app/browser-window.service.ts b/src/app/browser-window.service.ts
index 87f331d3f44cbd96f66cd59e8dc69312e2ee1d3a..89b58c964dcc85a79e49809925455da0882abab5 100644
--- a/src/app/browser-window.service.ts
+++ b/src/app/browser-window.service.ts
@@ -14,7 +14,7 @@ import {repeat, take, takeUntil, filter, catchError, map, tap} from 'rxjs/operat
 import {timer, interval, Subject, BehaviorSubject, of} from 'rxjs';
 import { ModaldialogComponent } from './modaldialog/modaldialog.component';
 import { WarndialogComponent } from './warndialog/warndialog.component';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
 import {NotificationsService } from './notifications.service';
 import { HttpClientModule, HttpClient, HttpHeaders, HttpErrorResponse } from     '@angular/common/http';
 import { SettingsService } from './settings.service';
diff --git a/src/app/contactus/contactus.component.ts b/src/app/contactus/contactus.component.ts
index 39818181f2314aa42ebd0e6d986fb727f609b811..c20fdf33073d2fa6f78f4568adfedc7618af87f4 100644
--- a/src/app/contactus/contactus.component.ts
+++ b/src/app/contactus/contactus.component.ts
@@ -6,7 +6,7 @@ import { AuthorisationService } from '../authorisation.service';
 import { ComputesitesService } from '../computesites.service';
 import { Computesite } from '../computesite';
 import { Location } from '@angular/common';
-import { MatButtonToggleGroup } from '@angular/material';
+import { MatButtonToggleGroup } from '@angular/material/button-toggle';
 import { Subscription, pipe, combineLatest } from 'rxjs';
 import {filter} from 'rxjs/operators';
 import {map as rxjsmap, tap} from 'rxjs/operators';
@@ -17,7 +17,7 @@ import {MatChipInputEvent} from '@angular/material/chips';
 import {COMMA, ENTER} from '@angular/cdk/keycodes';
 import {TesService} from '../tes.service';
 import {NotificationsService} from '../notifications.service';
-import {MatSelectChange} from '@angular/material';
+import { MatSelectChange } from '@angular/material/select';
 
 
 @Component({
diff --git a/src/app/file-explorer/file-explorer.module.ts b/src/app/file-explorer/file-explorer.module.ts
index c8ee87ec346ca921289ccef54b1b7f082c912df9..31bdbf706339bc51ea0b150cf766a2b991bceafd 100644
--- a/src/app/file-explorer/file-explorer.module.ts
+++ b/src/app/file-explorer/file-explorer.module.ts
@@ -4,7 +4,7 @@ import { MatToolbarModule } from '@angular/material/toolbar';
 import { FlexLayoutModule } from '@angular/flex-layout';
 import { MatIconModule } from '@angular/material/icon';
 import { MatGridListModule } from '@angular/material/grid-list';
-import { MatListModule } from '@angular/material';
+import { MatListModule } from '@angular/material/list';
 import { MatMenuModule } from '@angular/material/menu';
 import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { MatDialogModule } from '@angular/material/dialog';
@@ -17,7 +17,7 @@ import { FileExplorerComponent } from './file-explorer.component';
 import {MatTableModule} from '@angular/material/table';
 import {ScrollingModule} from '@angular/cdk/scrolling';
 import {MatSidenavModule} from '@angular/material/sidenav'
-import { MatSelectModule } from '@angular/material';
+import { MatSelectModule } from '@angular/material/select';
 
 
 // import {cdkScrollable} from '@angular/'
diff --git a/src/app/launcher/launcher.component.ts b/src/app/launcher/launcher.component.ts
index f8c8c252c4cdf185f1cc65d0013459aea09b468b..fcb6179a36e37887b2336125e65f1f5f327e0763 100644
--- a/src/app/launcher/launcher.component.ts
+++ b/src/app/launcher/launcher.component.ts
@@ -1,5 +1,6 @@
 import { Component, OnInit, NgModule, Inject, Input } from '@angular/core';
-import { MatTableDataSource, MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule, MatDialogConfig } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule, MatDialogConfig } from '@angular/material/dialog';
+import { MatTableDataSource } from '@angular/material/table';
 
 import { Location } from '@angular/common';
 // import { HttpClientModule, HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';
diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts
index 00f4bcb9755bdf4cc64b618901727ec8d3277ced..31047156cd51ce6c28afc44dac0097bcd129491c 100644
--- a/src/app/login/login.component.ts
+++ b/src/app/login/login.component.ts
@@ -1,5 +1,5 @@
 import { Component, OnInit } from '@angular/core';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule, MatDialogConfig } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule, MatDialogConfig } from '@angular/material/dialog';
 import {OverlayContainer} from '@angular/cdk/overlay';
 import { BehaviorSubject } from 'rxjs/BehaviorSubject';
 import { Subscription } from 'rxjs';
diff --git a/src/app/logoutdialog/logoutdialog.component.ts b/src/app/logoutdialog/logoutdialog.component.ts
index e01f5d51cfef473e28a7b1c4949fba30c58cb941..3ff0a100ca208e66f0a1a90058376f7bd1c826cf 100644
--- a/src/app/logoutdialog/logoutdialog.component.ts
+++ b/src/app/logoutdialog/logoutdialog.component.ts
@@ -1,6 +1,6 @@
 import { Component, OnInit, Inject } from '@angular/core';
 import { AuthorisationService } from '../authorisation.service';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
 
 
 @Component({
diff --git a/src/app/modaldialog/modaldialog.component.ts b/src/app/modaldialog/modaldialog.component.ts
index c3890eae8f9f66d28b330ec123388d76a7f04f05..66b85e68923d07174046b53ab6737b9296beaab4 100644
--- a/src/app/modaldialog/modaldialog.component.ts
+++ b/src/app/modaldialog/modaldialog.component.ts
@@ -1,5 +1,5 @@
 import { Component, OnInit, Inject  } from '@angular/core';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
 
 @Component({
   selector: 'app-modaldialog',
diff --git a/src/app/ourservices/ourservices.component.ts b/src/app/ourservices/ourservices.component.ts
index 5ff16768c23e8f74b888a3be0e81145840192fea..ac2dce276bb4e117090f80e7ef4e67078c3f3b3d 100644
--- a/src/app/ourservices/ourservices.component.ts
+++ b/src/app/ourservices/ourservices.component.ts
@@ -5,7 +5,7 @@ import {OverlayContainer} from '@angular/cdk/overlay';
 import { AuthorisationService } from '../authorisation.service';
 import { ComputesitesService } from '../computesites.service';
 import { Location } from '@angular/common';
-import { MatButtonToggleGroup } from '@angular/material';
+import { MatButtonToggleGroup } from '@angular/material/button-toggle';
 
 @Component({
   selector: 'app-ourservices',
diff --git a/src/app/settings/settings.component.ts b/src/app/settings/settings.component.ts
index a2d6aaa80b24629e929960de778484c46ffb487d..7fce8321279cb65a69c9b5c9433561d30b56ba50 100644
--- a/src/app/settings/settings.component.ts
+++ b/src/app/settings/settings.component.ts
@@ -6,7 +6,7 @@ import { AuthorisationService } from '../authorisation.service';
 import { ComputesitesService } from '../computesites.service';
 import { Location } from '@angular/common';
 import { SettingsService } from '../settings.service';
-import { MatButtonToggleGroup } from '@angular/material';
+import { MatButtonToggleGroup } from '@angular/material/button-toggle';
 
 @Component({
   selector: 'app-settings',
diff --git a/src/app/strudelapplist/strudelapplist.component.ts b/src/app/strudelapplist/strudelapplist.component.ts
index 23c39ea48e154631d3c642da38f27a7db6161442..e27a3d9047046990501a01b0bb1c614c57080b4b 100644
--- a/src/app/strudelapplist/strudelapplist.component.ts
+++ b/src/app/strudelapplist/strudelapplist.component.ts
@@ -7,7 +7,7 @@ import { repeat } from 'rxjs/operators';
 import { BatchInterface} from '../batchinterface';
 import { timer } from 'rxjs/observable/timer';
 import { LaunchDialogComponent } from '../launch-dialog/launch-dialog.component';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
 import { DomSanitizer} from '@angular/platform-browser';
 import { TesService } from '../tes.service';
 
diff --git a/src/app/submit-app.service.ts b/src/app/submit-app.service.ts
index 020983cf337e698eef055435598f6605bf9efebb..a0494041f817edc5d044a90b32031217e98b4e42 100644
--- a/src/app/submit-app.service.ts
+++ b/src/app/submit-app.service.ts
@@ -8,7 +8,7 @@ import { TesService } from './tes.service';
 import { Identity } from './identity';
 import { BatchInterface} from './batchinterface';
 import { LaunchDialogComponent } from './launch-dialog/launch-dialog.component';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
 import { DomSanitizer} from '@angular/platform-browser';
 import{ BehaviorSubject } from 'rxjs';
 
diff --git a/src/app/sv2-side-nav/sv2-side-nav.component.ts b/src/app/sv2-side-nav/sv2-side-nav.component.ts
index 578a0ac81d28f22461b126605b2323857fec3c5e..212c88cbddffc1a2d828d36852ad146c38b1ee07 100644
--- a/src/app/sv2-side-nav/sv2-side-nav.component.ts
+++ b/src/app/sv2-side-nav/sv2-side-nav.component.ts
@@ -1,5 +1,5 @@
 import { Component, OnInit } from '@angular/core';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule, MatDialogConfig } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule, MatDialogConfig } from '@angular/material/dialog';
 
 import { AuthorisationService } from '../authorisation.service';
 import { LogoutdialogComponent } from '../logoutdialog/logoutdialog.component';
diff --git a/src/app/warndialog/warndialog.component.ts b/src/app/warndialog/warndialog.component.ts
index a4c01c9ce87d7c5d79ff55bf3b6b47635bd6aaa9..9297539a0fe7084bdd431cde3e6815e883a54699 100644
--- a/src/app/warndialog/warndialog.component.ts
+++ b/src/app/warndialog/warndialog.component.ts
@@ -1,6 +1,6 @@
 
 import { Component, OnInit, Inject  } from '@angular/core';
-import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material';
+import { MatDialog, MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
 
 @Component({
   selector: 'app-warndialog',
diff --git a/src/main.ts b/src/main.ts
index 9c74aeff0ed040db981a20aba24395f3ac79a551..91ec6da5f07886cf1d97b5d4212f4ddaa3eb2c9c 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -3,7 +3,6 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
 
 import { AppModule } from './app/app.module';
 import { environment } from './environments/environment';
-import 'hammerjs';
 
 if (environment.production) {
   enableProdMode();