diff --git a/src/app/admin/workspace.component.html b/src/app/admin/workspace.component.html
index 36d65e92a7555cb247d2fdcfe593fe70db4d6685..806da3409b9da517e7b4d74540f2e0ce4006a307 100644
--- a/src/app/admin/workspace.component.html
+++ b/src/app/admin/workspace.component.html
@@ -1,5 +1,8 @@
 <p>WorkspaceComponent</p>
 <p>Eingeloggt als {{ (mds.loginData$ | async)?.loginname}}</p>
 <p>Workspace: {{myWorkspace}}</p>
+<p>&nbsp;</p>
+<p>Sorry - die Einbindung der Administrator-Funktionen in das Testcenter ist noch in Arbeit.</p>
+
 <hr/>
 <router-outlet></router-outlet>
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 84b9d8bc89f44369d1d0e88eecb401a77dc7a2bc..9eaabf9ef4aeea796fc62768007f697da9c0bcd5 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -20,10 +20,20 @@ export class AppComponent implements OnInit {
     private cts: CustomtextService
   ) { }
 
+  private static getStringFromLocalStorage(key: string) {
+    const storageEntry = localStorage.getItem(key);
+    if (storageEntry !== null) {
+      if (storageEntry.length > 0) {
+        return (storageEntry as string);
+      }
+    }
+    return ''
+  }
+
   ngOnInit() {
-    this.mds.setCustomtextsFromDefList(appconfig.customtextsApp);
-    this.mds.setCustomtextsFromDefList(appconfig.customtextsLogin);
-    this.mds.setCustomtextsFromDefList(appconfig.customtextsBooklet);
+    this.mds.addCustomtextsFromDefList(appconfig.customtextsApp);
+    this.mds.addCustomtextsFromDefList(appconfig.customtextsLogin);
+    this.mds.addCustomtextsFromDefList(appconfig.customtextsBooklet);
 
     // give a message to the central message broadcast
 
@@ -39,28 +49,31 @@ export class AppComponent implements OnInit {
 
     this.bs.getSysConfig().subscribe(sc => {
       this.mds.setDefaultCustomtexts(sc);
-      this.mds.setCustomtextsFromDefList(appconfig.customtextsApp);
+      this.mds.addCustomtextsFromDefList(appconfig.customtextsApp);
       // restore login status if stored in localStorage
-      const loginToken = localStorage.getItem('lt');
-      if (loginToken !== null) {
-        if (loginToken.length > 0) {
-          let adminToken = localStorage.getItem('at');
-          let personToken = localStorage.getItem('pt');
-          let bookletDbId = 0;
-          if (personToken !== null) {
-            if (personToken.length > 0) {
-              const bookletDbIdStr = localStorage.getItem('bi');
-              if (bookletDbIdStr !== null) {
-                bookletDbId = Number(bookletDbIdStr);
-              }
+      const adminToken = AppComponent.getStringFromLocalStorage('at');
+      if (adminToken) {
+        this.bs.getLoginDataAdmin(adminToken).subscribe(
+          (admindata: LoginData) => {
+            if (admindata instanceof ServerError) {
+              this.mds.setNewLoginData();
+            } else {
+              this.mds.setNewLoginData(admindata);
             }
-          } else {
-            personToken = '';
           }
-          let code = localStorage.getItem('c');
-          if (code === null) {
-            code = '';
+        );
+      } else {
+        const loginToken = AppComponent.getStringFromLocalStorage('lt');
+        if (loginToken) {
+          let personToken = AppComponent.getStringFromLocalStorage('pt');
+          let bookletDbId = 0;
+          if (personToken) {
+            const bookletDbIdStr = AppComponent.getStringFromLocalStorage('bi');
+            if (bookletDbIdStr) {
+              bookletDbId = Number(bookletDbIdStr);
+            }
           }
+          const code = AppComponent.getStringFromLocalStorage('c');
 
           // bookletDbId is not yet checked by getLoginData, only passed-through
           this.bs.getLoginData(loginToken, personToken, bookletDbId).subscribe(ld => {
@@ -82,13 +95,9 @@ export class AppComponent implements OnInit {
           });
         } else {
           this.mds.setNewLoginData();
-          this.mds.setCustomtextsFromDefList(appconfig.customtextsLogin);
-          this.mds.setCustomtextsFromDefList(appconfig.customtextsBooklet);
+          this.mds.addCustomtextsFromDefList(appconfig.customtextsLogin);
+          this.mds.addCustomtextsFromDefList(appconfig.customtextsBooklet);
         }
-      } else {
-        this.mds.setNewLoginData();
-        this.mds.setCustomtextsFromDefList(appconfig.customtextsLogin);
-        this.mds.setCustomtextsFromDefList(appconfig.customtextsBooklet);
       }
     });
   }
diff --git a/src/app/backend.service.ts b/src/app/backend.service.ts
index 0ca615c275d5ebe93a48056f7dd25eb9a634825a..74f8455f190d40826ed10a3fad84631db3878329 100644
--- a/src/app/backend.service.ts
+++ b/src/app/backend.service.ts
@@ -56,6 +56,14 @@ export class BackendService {
         );
   }
 
+  getLoginDataAdmin(adminToken: string): Observable<LoginData | ServerError> {
+    return this.http
+      .post<LoginData>(this.serverSlimAdminUrl + 'login', {at: adminToken})
+      .pipe(
+        catchError(ErrorHandler.handle)
+      );
+  }
+
   // BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
   getSysConfig(): Observable<KeyValuePair> {
     return this.http.get<KeyValuePair>(this.serverSlimUrl + 'sysconfig')
diff --git a/src/app/maindata.service.ts b/src/app/maindata.service.ts
index 0c129ccbd3480db4656cf152b458504cffe402fe..abc48fc6d6960d316687f45d5b1e9fa72ba862bc 100644
--- a/src/app/maindata.service.ts
+++ b/src/app/maindata.service.ts
@@ -9,24 +9,26 @@ import {appconfig, customtextKeySeparator, CustomTextsDefList} from "./app.confi
   providedIn: 'root'
 })
 export class MainDataService {
-  private static defaultLoginData: LoginData = {
-    logintoken: '',
-    persontoken: '',
-    mode: '',
-    groupname: '',
-    loginname: '',
-    name: '',
-    workspaceName: '',
-    booklets: null,
-    code: '',
-    booklet: 0,
-    bookletlabel: '',
-    customTexts: {},
-    admintoken: '',
-    workspaces: [],
-    is_superadmin: false,
-    costumTexts: {}
-  };
+  private static get defaultLoginData(): LoginData {
+    return {
+      logintoken: '',
+      persontoken: '',
+      mode: '',
+      groupname: '',
+      loginname: '',
+      name: '',
+      workspaceName: '',
+      booklets: null,
+      code: '',
+      booklet: 0,
+      bookletlabel: '',
+      customTexts: {},
+      admintoken: '',
+      workspaces: [],
+      is_superadmin: false,
+      costumTexts: {}
+    }
+  }
 
   public loginData$ = new BehaviorSubject<LoginData>(MainDataService.defaultLoginData);
   public globalErrorMsg$ = new BehaviorSubject<ServerError>(null);
@@ -50,63 +52,51 @@ export class MainDataService {
 
   // ensures consistency
   setNewLoginData(logindata?: LoginData) {
-    const myLoginData: LoginData = {
-      logintoken: MainDataService.defaultLoginData.logintoken,
-      persontoken: MainDataService.defaultLoginData.persontoken,
-      mode: MainDataService.defaultLoginData.mode,
-      groupname: MainDataService.defaultLoginData.groupname,
-      loginname: MainDataService.defaultLoginData.loginname,
-      name: MainDataService.defaultLoginData.name,
-      workspaceName: MainDataService.defaultLoginData.workspaceName,
-      booklets: MainDataService.defaultLoginData.booklets,
-      code: MainDataService.defaultLoginData.code,
-      booklet: MainDataService.defaultLoginData.booklet,
-      bookletlabel: MainDataService.defaultLoginData.bookletlabel,
-      customTexts: {}, // always ignored except right after getting from backend!
-      admintoken: '',
-      workspaces: [],
-      is_superadmin: false,
-      costumTexts: {} // always ignored except right after getting from backend!
-    };
+    const myLoginData: LoginData = MainDataService.defaultLoginData;
+    if (!logindata) {
+      logindata = MainDataService.defaultLoginData;
+    }
 
-    if (logindata) {
-      if ((logindata.admintoken)) { //.length > 0) && (logindata.name.length > 0)) {
-        myLoginData.admintoken = logindata.admintoken;
+    if ((logindata.admintoken)) { //.length > 0) && (logindata.name.length > 0)) {
+      myLoginData.admintoken = logindata.admintoken;
+      if (logindata.name) {
         myLoginData.loginname = logindata.name;
-        myLoginData.workspaces = logindata.workspaces;
-        myLoginData.is_superadmin = logindata.is_superadmin;
-      } else if (
-        (logindata.logintoken.length > 0) &&
-        (logindata.loginname.length > 0) &&
-        (logindata.mode.length > 0) &&
-        (logindata.groupname.length > 0) &&
-        (logindata.workspaceName.length > 0) &&
-        (logindata.booklets)) {
-
-          const validCodes = Object.keys(logindata.booklets);
-          if (validCodes.length > 0) {
-            myLoginData.logintoken = logindata.logintoken;
-            myLoginData.loginname = logindata.loginname;
-            myLoginData.mode = logindata.mode;
-            myLoginData.groupname = logindata.groupname;
-            myLoginData.workspaceName = logindata.workspaceName;
-            myLoginData.booklets = logindata.booklets;
-            if (logindata.code.length > 0) {
-              if (logindata.code in logindata.booklets) {
-                myLoginData.code = logindata.code;
-              }
+      } else {
+        myLoginData.loginname = logindata.loginname;
+      }
+      myLoginData.workspaces = logindata.workspaces;
+      myLoginData.is_superadmin = logindata.is_superadmin;
+    } else if (
+      (logindata.logintoken.length > 0) &&
+      (logindata.loginname.length > 0) &&
+      (logindata.mode.length > 0) &&
+      (logindata.groupname.length > 0) &&
+      (logindata.workspaceName.length > 0) &&
+      (logindata.booklets)) {
+
+        const validCodes = Object.keys(logindata.booklets);
+        if (validCodes.length > 0) {
+          myLoginData.logintoken = logindata.logintoken;
+          myLoginData.loginname = logindata.loginname;
+          myLoginData.mode = logindata.mode;
+          myLoginData.groupname = logindata.groupname;
+          myLoginData.workspaceName = logindata.workspaceName;
+          myLoginData.booklets = logindata.booklets;
+          if (logindata.code.length > 0) {
+            if (logindata.code in logindata.booklets) {
+              myLoginData.code = logindata.code;
             }
-            if (logindata.persontoken.length > 0) {
-              myLoginData.persontoken = logindata.persontoken;
-              myLoginData.booklet = logindata.booklet;
-              if (myLoginData.booklet > 0) {
-                myLoginData.bookletlabel = logindata.bookletlabel;
-              }
+          }
+          if (logindata.persontoken.length > 0) {
+            myLoginData.persontoken = logindata.persontoken;
+            myLoginData.booklet = logindata.booklet;
+            if (myLoginData.booklet > 0) {
+              myLoginData.bookletlabel = logindata.bookletlabel;
             }
           }
-      }
-
+        }
     }
+
     this.loginData$.next(myLoginData);
     localStorage.setItem('lt', myLoginData.logintoken);
     localStorage.setItem('at', myLoginData.admintoken);
@@ -167,7 +157,7 @@ export class MainDataService {
     return myLoginData.persontoken;
   }
 
-  public setCustomtextsFromDefList(customtextList: CustomTextsDefList) {
+  public addCustomtextsFromDefList(customtextList: CustomTextsDefList) {
     const myCustomTexts: {[key: string]: string} = {};
     for (const ct of Object.keys(customtextList.defList)) {
       myCustomTexts[customtextList.keyPrefix + customtextKeySeparator + ct] = customtextList.defList[ct].defaultvalue;
@@ -176,24 +166,26 @@ export class MainDataService {
   }
 
   public setDefaultCustomtexts(newTexts: {[key: string]: string;}) {
-    for (const ctKey of Object.keys(newTexts)) {
-      const sepIndex = ctKey.indexOf(customtextKeySeparator);
-      if (sepIndex > 1) {
-        const keyPrefix = ctKey.slice(0 , sepIndex-1);
-        const keyId = ctKey.slice(sepIndex+1);
-
-        switch(keyPrefix) {
-          case 'app': {
-            appconfig.customtextsApp.defList[keyId].defaultvalue = newTexts[ctKey];
-            break;
-          }
-          case 'login': {
-            appconfig.customtextsLogin.defList[keyId].defaultvalue = newTexts[ctKey];
-            break;
-          }
-          case 'booklet': {
-            appconfig.customtextsBooklet.defList[keyId].defaultvalue = newTexts[ctKey];
-            break;
+    if (newTexts) {
+      for (const ctKey of Object.keys(newTexts)) {
+        const sepIndex = ctKey.indexOf(customtextKeySeparator);
+        if (sepIndex > 1) {
+          const keyPrefix = ctKey.slice(0 , sepIndex-1);
+          const keyId = ctKey.slice(sepIndex+1);
+
+          switch(keyPrefix) {
+            case 'app': {
+              appconfig.customtextsApp.defList[keyId].defaultvalue = newTexts[ctKey];
+              break;
+            }
+            case 'login': {
+              appconfig.customtextsLogin.defList[keyId].defaultvalue = newTexts[ctKey];
+              break;
+            }
+            case 'booklet': {
+              appconfig.customtextsBooklet.defList[keyId].defaultvalue = newTexts[ctKey];
+              break;
+            }
           }
         }
       }
diff --git a/src/app/start/start.component.html b/src/app/start/start.component.html
index 2f1e06515c9f25373e1145506706023da1700366..c7b18b1fa9143f8edc1b2d19da7c29de525e1c52 100644
--- a/src/app/start/start.component.html
+++ b/src/app/start/start.component.html
@@ -1,6 +1,6 @@
 <div class="logo">
   <a [routerLink]="['/']">
-    <img src="assets/IQB-LogoA.png" matTooltip="Startseite"/>
+    <img src="assets/IQB-LogoA.png" matTooltip="Startseite" alt=""IQB-Logo/>
   </a>
 </div>
 <div class="page-body">
@@ -51,7 +51,7 @@
     <mat-card fxFlex="0 0 400px" fxLayout="column" *ngIf="showBookletButtons">
       <mat-card-title>{{ bookletSelectTitle }}</mat-card-title>
       <mat-card-content>
-        <div fxLayout="row" fxLayoutGap="10px" fxLayout="column">
+        <div fxLayoutGap="10px" fxLayout="column">
           <p *ngIf="bookletlist.length === 0">
             Für diese Anmeldung wurde kein Test gefunden.
           </p>
@@ -82,7 +82,7 @@
       <mat-card fxFlex="0 0 400px" fxLayout="column" *ngIf="showAdminSelection">
         <mat-card-title>Studie wählen</mat-card-title>
         <mat-card-content>
-          <div fxLayout="row" fxLayoutGap="10px" fxLayout="column">
+          <div fxLayoutGap="10px" fxLayout="column">
             <p *ngIf="(mds.loginData$ | async)?.workspaces.length === 0">
               Sie sind mit Administrator-Funktionen angemeldet. Aktuell sind keine Studien für Sie freigegeben.
             </p>
@@ -94,7 +94,7 @@
         </mat-card-content>
         <mat-card-actions>
           <button mat-raised-button color="foreground" *ngIf="(mds.loginData$ | async)?.is_superadmin" [routerLink]="['/superadmin']">Nutzer/Arbeitsbereiche</button>
-          <button mat-raised-button color="foreground" (click)="mds.setNewLoginData()">Anmeldung ändern</button>
+          <button mat-raised-button color="foreground" (click)="resetLogin()">Neu anmelden</button>
         </mat-card-actions>
       </mat-card>
 
diff --git a/src/app/start/start.component.ts b/src/app/start/start.component.ts
index bfa5434a6ad4952f9a9918ac0da48b8b63c7ac06..ab95f5e46fb4ae85c4212a93c1385a2c63459a14 100644
--- a/src/app/start/start.component.ts
+++ b/src/app/start/start.component.ts
@@ -56,9 +56,18 @@ export class StartComponent implements OnInit, OnDestroy {
       if (logindata.admintoken.length > 0) {
         this.showLoginForm = false;
         this.showAdminSelection = true;
-
+        this.showCodeForm = false;
+        this.showBookletButtons = false;
+        this.showTestRunningButtons = false;
+        this.loginStatusText = [];
+        this.loginStatusText.push('Admin-Bereich ');
+        this.loginStatusText.push('angemeldet als ' + logindata.loginname);
+        if (logindata.is_superadmin) {
+          this.loginStatusText.push('Rechte auch für Anlegen/Löschen von Nutzern und Workspaces');
+        }
       } else if (logindata.logintoken.length > 0) {
         // Statustext box
+        this.showAdminSelection = false;
         this.loginStatusText = [];
         this.loginStatusText.push('Studie: ' + logindata.workspaceName);
         this.loginStatusText.push('angemeldet als "' +
@@ -176,6 +185,7 @@ export class StartComponent implements OnInit, OnDestroy {
         this.loginStatusText = ['nicht angemeldet'];
         this.showBookletButtons = false;
         this.showCodeForm = false;
+        this.showAdminSelection = false;
         this.showLoginForm = true;
         this.showTestRunningButtons = false;
       }
@@ -200,7 +210,7 @@ export class StartComponent implements OnInit, OnDestroy {
         if (loginData instanceof ServerError) {
           const e = loginData as ServerError;
           this.mds.globalErrorMsg$.next(e);
-          this.mds.setCustomtextsFromDefList(appconfig.customtextsLogin);
+          this.mds.addCustomtextsFromDefList(appconfig.customtextsLogin);
           // no change in other data
         } else {
           this.mds.globalErrorMsg$.next(null);
@@ -281,7 +291,6 @@ export class StartComponent implements OnInit, OnDestroy {
   }
 
   buttonGotoWorkspace(ws: WorkspaceData) {
-    console.log(ws);
     if (ws.role === 'MO') {
       this.router.navigateByUrl('/admin/' + ws.id.toString() + '/monitor');
     } else {
diff --git a/src/app/superadmin/superadmin.component.html b/src/app/superadmin/superadmin.component.html
index b22701206e94730986be3f1f4f781800a25b8ac0..04ba540ada44067ff58dd17c42edfa52d094c846 100644
--- a/src/app/superadmin/superadmin.component.html
+++ b/src/app/superadmin/superadmin.component.html
@@ -1,2 +1,4 @@
 <p>SuperadminComponent</p>
 <p>Eingeloggt als {{ (mds.loginData$ | async)?.loginname}}</p>
+<p>&nbsp;</p>
+<p>Sorry - die Einbindung der Administrator-Funktionen in das Testcenter ist noch in Arbeit.</p>
diff --git a/src/app/sys-check/backend.service.ts b/src/app/sys-check/backend.service.ts
index 5b8ffc5d2a474c80ae15942d5b15fb7b44bf37db..735123b4dce8926a95673d2dd00689a898fb08a7 100644
--- a/src/app/sys-check/backend.service.ts
+++ b/src/app/sys-check/backend.service.ts
@@ -29,7 +29,7 @@ export class BackendService {
     return this.http
       .post<CheckConfig[]>(this.serverUrl + 'getSysCheckConfigs.php', {}, httpOptions)
       .pipe(
-        catchError(() => {
+        catchError(err => {
           const myreturn: CheckConfig[] = [];
           return of(myreturn);
         })
diff --git a/src/app/sys-check/start.component.html b/src/app/sys-check/start.component.html
index c4b9e78de787f89d799ee17731e0ff8f85700413..ca7c04bde32b020add633adf0cfd0dbc78b38d43 100644
--- a/src/app/sys-check/start.component.html
+++ b/src/app/sys-check/start.component.html
@@ -9,7 +9,7 @@
 <div class="page-body">
   <div fxLayout="row" fxLayoutAlign="center start">
     <mat-card fxFlex="0 2 500px">
-      <mat-card-title>System-Check: Starten {{ 'app_title' | customtext:'app_title':cts.updateCount }}</mat-card-title>
+      <mat-card-title>{{ 'app_title' | customtext:'app_title':cts.updateCount }}: System-Check</mat-card-title>
       <mat-card-content>
         <p>Hier können Sie ermitteln, ob das Computersystem, das Sie gerade benutzen, für
           die hier vorgesehenen Testungen geeignet ist.</p>
diff --git a/src/app/sys-check/start.component.ts b/src/app/sys-check/start.component.ts
index 6a974803e117732c8e622d40322171d17a106bf2..214684cf95dd3f06883d8b9b03f146e478d6e66d 100644
--- a/src/app/sys-check/start.component.ts
+++ b/src/app/sys-check/start.component.ts
@@ -27,8 +27,6 @@ export class StartComponent implements OnInit {
     this.dataLoading = true;
     this.bs.getCheckConfigs().subscribe(myConfigs => {
       this.checkConfigList = myConfigs;
-      // @ts-ignore
-      console.log(this.cts.getCustomText('app_title', 'tütü'))
       this.dataLoading = false;
     });
   }
diff --git a/src/app/sys-check/unit-check/unit-check.component.ts b/src/app/sys-check/unit-check/unit-check.component.ts
index 4b653c3f2531373f13c53f4b11656beb954732ed..cbd6d4d478a8a15c361d6919e5d898c942fee8ac 100644
--- a/src/app/sys-check/unit-check/unit-check.component.ts
+++ b/src/app/sys-check/unit-check/unit-check.component.ts
@@ -150,7 +150,7 @@ export class UnitCheckComponent implements OnInit, OnDestroy {
       this.ds.unitData$.next([
         {id: '0', type: 'unit/player', label: 'loading time', value: unitAndPlayer.duration.toString(), warning: false}
       ]);
-
+console.log(unitAndPlayer);
       this.pendingItemDefinition$.next(unitAndPlayer.def);
       this.createPlayerElement(unitAndPlayer.player);
 
diff --git a/src/app/test-controller/test-controller.component.ts b/src/app/test-controller/test-controller.component.ts
index 4a217e0694642820712b93fed605604671d7b569..6ee45dce9eb849e7077c572f9c730415ea737fc9 100644
--- a/src/app/test-controller/test-controller.component.ts
+++ b/src/app/test-controller/test-controller.component.ts
@@ -480,7 +480,7 @@ export class TestControllerComponent implements OnInit, OnDestroy {
           if (myData instanceof ServerError) {
             const e = myData as ServerError;
             this.mds.globalErrorMsg$.next(e);
-            this.mds.setCustomtextsFromDefList(appconfig.customtextsBooklet);
+            this.mds.addCustomtextsFromDefList(appconfig.customtextsBooklet);
             this.tcs.dataLoading = false;
           } else {
             const bookletData = myData as BookletData;