diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9d939af8534a27f05a20e70145fd4331600c8d7a..4d6874226e84cab55e1ba1572e3146649809a6d6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -49,33 +49,33 @@ ngbuild:
     paths:
       - "$BUILD_DIR"
 
-#review:
-#  stage: review
-#  script:
-#    - rsync -av --delete "$BUILD_DIR" /srv/nginx/pages/$CI_BUILD_REF_SLUG
-#  environment:
-#    name: review/$CI_BUILD_REF_NAME
-#    url: http://$CI_BUILD_REF_SLUG.$SERVER_URL
-#    on_stop: stop_review
-#  only:
-#    - branches
-#  except:
-#    - master
-#  tags:
-#    - nginx
+review:
+  stage: review
+  script:
+    - rsync -av --delete "$BUILD_DIR" /srv/nginx/pages/$CI_BUILD_REF_SLUG
+  environment:
+    name: review/$CI_BUILD_REF_NAME
+    url: http://$CI_BUILD_REF_SLUG.$REVIEW_SERVER_URL
+    on_stop: stop_review
+  only:
+    - branches
+  except:
+    - master
+  tags:
+    - nginx
 
-#stop_review:
-#  stage: review
-#  script:
-#    - rm -rf "$BUILD_DIR" /srv/nginx/pages/$CI_BUILD_REF_SLUG
-#  variables:
-#    GIT_STRATEGY: none
-#  when: manual
-#  environment:
-#    name: review/$CI_BUILD_REF_NAME
-#    action: stop
-#  tags:
-#    - nginx
+stop_review:
+  stage: review
+  script:
+    - rm -rf "$BUILD_DIR" /srv/nginx/pages/$CI_BUILD_REF_SLUG
+  variables:
+    GIT_STRATEGY: none
+  when: manual
+  environment:
+    name: review/$CI_BUILD_REF_NAME
+    action: stop
+  tags:
+    - nginx
 
 
 deploy:
diff --git a/docs/a11y/.gitkeep b/docs/a11y/.gitkeep
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/docs/a11y/Making_html_elements_a11y.md b/docs/a11y/Making_html_elements_a11y.md
new file mode 100644
index 0000000000000000000000000000000000000000..a333895b628fbf1885a0486f53b8ad7595b92e3e
--- /dev/null
+++ b/docs/a11y/Making_html_elements_a11y.md
@@ -0,0 +1,165 @@
+
+
+[TOC]
+
+
+
+
+
+# Making HTML elements a11y
+
+### Example (meeting_room) for Buttons
+
+```html
+<button mat-button *ngIf="user && deviceType === 'desktop'" [matMenuTriggerFor]="userMenu" aria-labelledby="meeting_room"></button>
+
+<!--Hidden Div's for a11y-Descriptions-->
+<div class="visually-hidden">
+  <div id="meeting_room">{{'header.a11y-meeting_room' | translate}}</div>
+</div>
+```
+
+### style.sccs
+
+```scss
+.visually-hidden {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  left: -10000px;
+}
+
+```
+
+### Dynamic ARIA labels
+
+Dynamic Aria labels like used in generic components are also possible! 
+
+For usage only the `attr.` tag prefix must be added like in following code example:
+
+```html
+<button
+      mat-button
+      attr.aria-labelledby="{{ ariaPrefix + 'cancel' }}"
+...
+...
+<div id="{{ ariaPrefix + 'cancel'}}">{{ buttonsLabelSection + '.cancel-description' | translate }}</div>
+```
+
+
+@see: [Accessible components: #2 dynamic ARIA labels](https://blog.prototypr.io/accessible-components-2-dynamic-aria-labels-6bf281f26d17)
+
+
+### Live Announcer
+
+#### To Add Live Announcer you need to import:
+
+``import { LiveAnnouncer } from '@angular/cdk/a11y';``
+
+##### And add to the constructor:
+```typescript
+constructor(
+    ...
+    private liveAnnouncer: LiveAnnouncer) { 
+    ...
+}
+```
+
+#### You also need to add to the `ngOnInit()` - Function:
+
+```typescript
+ngOnInit() {
+    ...
+    this.announce();
+}
+```
+
+#### And this is the function to start the announcement:
+
+```typescript
+public announce() {
+    this.liveAnnouncer.announce('Willkommenstext', 'assertive');
+}
+```
+
+
+
+#### Problems with JAWS and Microsoft Speech
+
+JAWS and Microsoft Speech cannot play the "title" attributes. Only NVDA plays the "title" attribute.
+Attribute "aria-label" does not work with multi-language titles, voice output reads registered string directly 1 to 1.
+`aria-labelledby` works finde with Microsoft Speech, JAWS and NVDA. If "title" attribute is additionally set, NVDA plays the text twice.
+
+
+
+### Keyboard Shortcut
+
+To enter Keyboard Shortcuts you first need to import `Renderer2`, `InDestroy` and the `EventService` form `angular/core`:
+```typescript
+import { Component, OnInit, OnDestroy, Renderer2 } from '@angular/core';
+import { EventService } from '../../../services/util/event.service';
+```
+
+After that you also need to add it to the constructor
+```typescript
+constructor(
+    ...
+    private eventService: EventService,
+    private _r: Renderer2){
+        ...
+}
+    }
+```
+
+When this is done you need to add a listener to the ``ngOnInit()`` function.
+
+Example:
+
+```typescript
+ngOnInit() {
+    ...
+    // But first you need to add a variable:
+    listenerFn: () => void;
+    // listenerFn is for closing the listener in the ngOnDestroy() function when leaving the page
+    
+    // Example of start-page 
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (event.keyCode === 49 && this.eventService.focusOnInput === false) {
+        document.getElementById('session_id-input').focus();
+      } else if (event.keyCode === 51 && this.eventService.focusOnInput === false) {
+        document.getElementById('new_session-button').focus();
+      } else if (event.keyCode === 52 && this.eventService.focusOnInput === false) {
+        document.getElementById('language-menu').focus();
+      } else if ((event.keyCode === 57 || event.keyCode === 27) && this.eventService.focusOnInput === false) {
+        this.announce();
+      } else if (event.keyCode === 27 && this.eventService.focusOnInput === true) {
+        document.getElementById('session_enter-button').focus();
+      }
+    });
+}
+
+// HTML Code:
+
+<button id="session_enter-button" ...>
+    ...
+</button>
+
+// 'focusOnInput' is a boolean variable which should be triggered when an input element is focused and unfocused
+// Example of room-join.component.html
+<input id="session_id-input" matInput #roomId   (focus)="eventService.makeFocusOnInputTrue()" 
+                                                (blur)="eventService.makeFocusOnInputFalse()"
+             .../>
+             
+// ngOnDestroy function for closing the listener when leaving the page
+ngOnDestroy() {
+    this.listenerFn();
+ }
+```
+
+## HTML5 Accessibility: aria-hidden and role=”presentation”
+
+A page about `aria-hidden` and `role="presentation"` attribute usage tests:
+
+Source: [HTML5 Accessibility: aria-hidden and role=”presentation”](http://john.foliot.ca/aria-hidden/)
+
diff --git a/docs/diagrams/comments_diagrams.mdj b/docs/diagrams/comments_diagrams.mdj
deleted file mode 100644
index b7295da036cbe8881efaa1b25647af627668003b..0000000000000000000000000000000000000000
--- a/docs/diagrams/comments_diagrams.mdj
+++ /dev/null
@@ -1,14458 +0,0 @@
-{
-	"_type": "Project",
-	"_id": "AAAAAAFF+h6SjaM2Hec=",
-	"name": "Untitled",
-	"ownedElements": [
-		{
-			"_type": "UMLModel",
-			"_id": "AAAAAAFpe7xMGqH7VRk=",
-			"_parent": {
-				"$ref": "AAAAAAFF+h6SjaM2Hec="
-			},
-			"name": "Model1",
-			"ownedElements": [
-				{
-					"_type": "UMLUseCaseDiagram",
-					"_id": "AAAAAAFpe7xMGqH8A8A=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "UseCaseDiagram1",
-					"ownedViews": [
-						{
-							"_type": "UMLActorView",
-							"_id": "AAAAAAFpe7yoQKIFgzc=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe7yoQKIG1zM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe7yoQKIFgzc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe7yoQKIDgWo="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7yoQaIHDrA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7yoQKIG1zM="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -752,
-											"top": -448,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7yoQaIIREM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7yoQKIG1zM="
-											},
-											"font": "Arial;13;1",
-											"left": 37,
-											"top": 206,
-											"width": 103,
-											"height": 13,
-											"text": "Dozent"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7yoQaIJyDE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7yoQKIG1zM="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -752,
-											"top": -448,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7yoQqIKbPg=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7yoQKIG1zM="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -752,
-											"top": -448,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 32,
-									"top": 199,
-									"width": 113,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe7yoQaIHDrA="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe7yoQaIIREM="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe7yoQaIJyDE="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe7yoQqIKbPg="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe7yoQqILJ+8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe7yoQKIFgzc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe7yoQKIDgWo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -376,
-									"top": -224,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe7yoQqIMM1w=",
-									"_parent": {
-										"$ref": "AAAAAAFpe7yoQKIFgzc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe7yoQKIDgWo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -376,
-									"top": -224,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe7yoQqINUN4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe7yoQKIFgzc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe7yoQKIDgWo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -376,
-									"top": -224,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe7yoQqIO/BU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe7yoQKIFgzc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe7yoQKIDgWo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -376,
-									"top": -224,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 32,
-							"top": 72,
-							"width": 113,
-							"height": 153,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe7yoQKIG1zM="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe7yoQqILJ+8="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe7yoQqIMM1w="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe7yoQqINUN4="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe7yoQqIO/BU="
-							}
-						},
-						{
-							"_type": "UMLActorView",
-							"_id": "AAAAAAFpe73eVqIx8wc=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe73eVqIvxOo="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe73eVqIyr+c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe73eVqIx8wc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe73eVqIvxOo="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe73eVqIzF/c=",
-											"_parent": {
-												"$ref": "AAAAAAFpe73eVqIyr+c="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -384,
-											"top": 640,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe73eVqI0T7c=",
-											"_parent": {
-												"$ref": "AAAAAAFpe73eVqIyr+c="
-											},
-											"font": "Arial;13;1",
-											"left": 37,
-											"top": 910,
-											"width": 103,
-											"height": 13,
-											"text": "Student"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe73eV6I17eI=",
-											"_parent": {
-												"$ref": "AAAAAAFpe73eVqIyr+c="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -384,
-											"top": 640,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe73eV6I2i6k=",
-											"_parent": {
-												"$ref": "AAAAAAFpe73eVqIyr+c="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -384,
-											"top": 640,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 32,
-									"top": 903,
-									"width": 113,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe73eVqIzF/c="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe73eVqI0T7c="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe73eV6I17eI="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe73eV6I2i6k="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe73eV6I3iJU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe73eVqIx8wc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe73eVqIvxOo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -192,
-									"top": 320,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe73eV6I4PO4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe73eVqIx8wc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe73eVqIvxOo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -192,
-									"top": 320,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe73eV6I5wnc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe73eVqIx8wc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe73eVqIvxOo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -192,
-									"top": 320,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe73eV6I6txY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe73eVqIx8wc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe73eVqIvxOo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -192,
-									"top": 320,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 32,
-							"top": 768,
-							"width": 113,
-							"height": 161,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe73eVqIyr+c="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe73eV6I3iJU="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe73eV6I4PO4="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe73eV6I5wnc="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe73eV6I6txY="
-							}
-						},
-						{
-							"_type": "UMLActorView",
-							"_id": "AAAAAAFpe74tNKJei7k=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe74tNKJcZCg="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe74tNKJfUWY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe74tNKJei7k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe74tNKJcZCg="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe74tNKJgwrM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe74tNKJfUWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -1280,
-											"top": 48,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe74tNKJhXmc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe74tNKJfUWY="
-											},
-											"font": "Arial;13;1",
-											"left": 37,
-											"top": 574,
-											"width": 103,
-											"height": 13,
-											"text": "Moderator"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe74tNKJi4qg=",
-											"_parent": {
-												"$ref": "AAAAAAFpe74tNKJfUWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -1280,
-											"top": 48,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe74tNaJjZ3w=",
-											"_parent": {
-												"$ref": "AAAAAAFpe74tNKJfUWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -1280,
-											"top": 48,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 32,
-									"top": 567,
-									"width": 113,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe74tNKJgwrM="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe74tNKJhXmc="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe74tNKJi4qg="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe74tNaJjZ3w="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe74tNaJkfb8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe74tNKJei7k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe74tNKJcZCg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -640,
-									"top": 24,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe74tNaJlvXo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe74tNKJei7k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe74tNKJcZCg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -640,
-									"top": 24,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe74tNaJmBsE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe74tNKJei7k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe74tNKJcZCg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -640,
-									"top": 24,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe74tNaJn1WM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe74tNKJei7k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe74tNKJcZCg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -640,
-									"top": 24,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 32,
-							"top": 448,
-							"width": 113,
-							"height": 145,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe74tNKJfUWY="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe74tNaJkfb8="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe74tNaJlvXo="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe74tNaJmBsE="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe74tNaJn1WM="
-							}
-						},
-						{
-							"_type": "UMLUseCaseSubjectView",
-							"_id": "AAAAAAFpe7+De6KTf5g=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe7+De6KR5QE="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe7+De6KUjEg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe7+De6KTf5g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe7+De6KR5QE="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7+De6KVB1o=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7+De6KUjEg="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7+De6KWXGI=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7+De6KUjEg="
-											},
-											"font": "Arial;13;1",
-											"left": 205,
-											"top": 23,
-											"width": 870,
-											"height": 13,
-											"text": "Arsnova-lite comment service"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7+De6KX7xc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7+De6KUjEg="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe7+De6KY1Tw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe7+De6KUjEg="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 200,
-									"top": 16,
-									"width": 880,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe7+De6KVB1o="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe7+De6KWXGI="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe7+De6KX7xc="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe7+De6KY1Tw="
-									}
-								}
-							],
-							"font": "Arial;13;0",
-							"left": 200,
-							"top": 16,
-							"width": 880,
-							"height": 945,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe7+De6KUjEg="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8DNKqKvWtE=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8DNKqKt5Jw="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8DNKqKwmGU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8DNKqKvWtE="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8DNKqKt5Jw="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8DNKqKxqRI=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8DNKqKwmGU="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 16,
-											"top": -96,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8DNKqKyUus=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8DNKqKwmGU="
-											},
-											"font": "Arial;13;1",
-											"left": 246,
-											"top": 59.5,
-											"width": 109,
-											"height": 13,
-											"text": "exportComments"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8DNKqKz4RA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8DNKqKwmGU="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 16,
-											"top": -96,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8DNKqK0q5g=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8DNKqKwmGU="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 16,
-											"top": -96,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 241,
-									"top": 52.5,
-									"width": 119,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8DNKqKxqRI="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8DNKqKyUus="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8DNKqKz4RA="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8DNKqK0q5g="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8DNKqK1tuY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8DNKqKvWtE="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8DNKqKt5Jw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 8,
-									"top": -48,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8DNKqK2N3Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8DNKqKvWtE="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8DNKqKt5Jw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 8,
-									"top": -48,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8DNKqK37XE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8DNKqKvWtE="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8DNKqKt5Jw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 8,
-									"top": -48,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8DNKqK4A6U=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8DNKqKvWtE="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8DNKqKt5Jw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 8,
-									"top": -48,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8DNK6K5HuQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8DNKqKvWtE="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8DNKqKt5Jw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 8,
-									"top": -48,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 216,
-							"top": 48,
-							"width": 169,
-							"height": 35,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8DNKqKwmGU="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8DNKqK1tuY="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8DNKqK2N3Y="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8DNKqK37XE="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8DNKqK4A6U="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8DNK6K5HuQ="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8GOZaLhADo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8GOZaLfPXg="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8GOZaLihmc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8GOZaLhADo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8GOZaLfPXg="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8GOZaLjRdE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8GOZaLihmc="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 592,
-											"top": -144,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8GOZaLklZM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8GOZaLihmc="
-											},
-											"font": "Arial;13;1",
-											"left": 843.5,
-											"top": 62,
-											"width": 98,
-											"height": 13,
-											"text": "Favorite"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8GOZaLlzbc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8GOZaLihmc="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 592,
-											"top": -144,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8GOZaLmwZE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8GOZaLihmc="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 592,
-											"top": -144,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 838.5,
-									"top": 55,
-									"width": 108,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8GOZaLjRdE="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8GOZaLklZM="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8GOZaLlzbc="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8GOZaLmwZE="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8GOZaLnWtk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8GOZaLhADo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8GOZaLfPXg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": -72,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8GOZaLoj50=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8GOZaLhADo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8GOZaLfPXg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": -72,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8GOZaLpyNw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8GOZaLhADo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8GOZaLfPXg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": -72,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8GOZaLqItM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8GOZaLhADo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8GOZaLfPXg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": -72,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8GOZaLrGDY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8GOZaLhADo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8GOZaLfPXg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": -72,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 816,
-							"top": 48,
-							"width": 153,
-							"height": 40,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8GOZaLihmc="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8GOZaLnWtk="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8GOZaLoj50="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8GOZaLpyNw="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8GOZaLqItM="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8GOZaLrGDY="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8HchqMQw4g=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8HchqMONmE="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8HchqMRIW0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8HchqMQw4g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8HchqMONmE="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8HchqMS8CM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8HchqMRIW0="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 480,
-											"top": -128,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8Hch6MTUug=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8HchqMRIW0="
-											},
-											"font": "Arial;13;1",
-											"left": 886.5,
-											"top": 142,
-											"width": 110,
-											"height": 13,
-											"text": "rightAnswer"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8Hch6MUd+c=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8HchqMRIW0="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 480,
-											"top": -128,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8Hch6MVg/0=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8HchqMRIW0="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 480,
-											"top": -128,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 881.5,
-									"top": 135,
-									"width": 120,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8HchqMS8CM="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8Hch6MTUug="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8Hch6MUd+c="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8Hch6MVg/0="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8Hch6MW8lw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8HchqMQw4g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8HchqMONmE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 240,
-									"top": -64,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8Hch6MXZPY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8HchqMQw4g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8HchqMONmE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 240,
-									"top": -64,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8Hch6MYcOU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8HchqMQw4g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8HchqMONmE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 240,
-									"top": -64,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8Hch6MZ758=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8HchqMQw4g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8HchqMONmE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 240,
-									"top": -64,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8Hch6MaivY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8HchqMQw4g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8HchqMONmE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 240,
-									"top": -64,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 856,
-							"top": 120,
-							"width": 171,
-							"height": 56,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8HchqMRIW0="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8Hch6MW8lw="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8Hch6MXZPY="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8Hch6MYcOU="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8Hch6MZ758="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8Hch6MaivY="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8JRqKNAoiA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8JRqKM+ipY="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8JRqKNBOFI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8JRqKNAoiA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8JRqKM+ipY="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8JRqKNCimo=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8JRqKNBOFI="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -256,
-											"top": -560,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8JRqaNDowM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8JRqKNBOFI="
-											},
-											"font": "Arial;13;1",
-											"left": 413,
-											"top": 70,
-											"width": 103,
-											"height": 13,
-											"text": "filterComments"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8JRqaNEuEg=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8JRqKNBOFI="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -256,
-											"top": -560,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8JRqaNFJHo=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8JRqKNBOFI="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -256,
-											"top": -560,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 408,
-									"top": 63,
-									"width": 113,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8JRqKNCimo="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8JRqaNDowM="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8JRqaNEuEg="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8JRqaNFJHo="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8JRqaNGn4g=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8JRqKNAoiA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8JRqKM+ipY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -128,
-									"top": -280,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8JRqaNHW2E=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8JRqKNAoiA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8JRqKM+ipY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -128,
-									"top": -280,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8JRqaNI4MA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8JRqKNAoiA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8JRqKM+ipY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -128,
-									"top": -280,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8JRqaNJsks=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8JRqKNAoiA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8JRqKM+ipY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -128,
-									"top": -280,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8JRqaNKdhA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8JRqKNAoiA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8JRqKM+ipY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -128,
-									"top": -280,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 384,
-							"top": 48,
-							"width": 161,
-							"height": 56,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8JRqKNBOFI="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8JRqaNGn4g="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8JRqaNHW2E="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8JRqaNI4MA="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8JRqaNJsks="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8JRqaNKdhA="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8KLnKNwoas=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8KLnKNuXzA="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8KLnKNx428=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8KLnKNwoas="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8KLnKNuXzA="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8KLnKNyZHc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8KLnKNx428="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 96,
-											"top": -240,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8KLnKNzbuM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8KLnKNx428="
-											},
-											"font": "Arial;13;1",
-											"left": 592,
-											"top": 206,
-											"width": 119,
-											"height": 13,
-											"text": "manageModerators"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8KLnKN0fQM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8KLnKNx428="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 96,
-											"top": -240,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8KLnKN18lU=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8KLnKNx428="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 96,
-											"top": -240,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 587,
-									"top": 199,
-									"width": 129.919921875,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8KLnKNyZHc="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8KLnKNzbuM="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8KLnKN0fQM="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8KLnKN18lU="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8KLnKN20zA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8KLnKNwoas="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8KLnKNuXzA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 48,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8KLnKN3Z5E=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8KLnKNwoas="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8KLnKNuXzA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 48,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8KLnKN4YAk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8KLnKNwoas="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8KLnKNuXzA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 48,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8KLnKN5BJA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8KLnKNwoas="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8KLnKNuXzA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 48,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8KLnKN6aMg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8KLnKNwoas="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8KLnKNuXzA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 48,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 560,
-							"top": 184,
-							"width": 183,
-							"height": 56,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8KLnKNx428="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8KLnKN20zA="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8KLnKN3Z5E="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8KLnKN4YAk="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8KLnKN5BJA="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8KLnKN6aMg="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8LrX6OfnoY=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8LrX6Od4VU="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8LrX6OgiV4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8LrX6OfnoY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8LrX6Od4VU="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8LrX6OhiGg=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8LrX6OgiV4="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -32,
-											"top": -688,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8LrX6OiNGI=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8LrX6OgiV4="
-											},
-											"font": "Arial;13;1",
-											"left": 653.5,
-											"top": 82,
-											"width": 106,
-											"height": 13,
-											"text": "presentComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8LrX6Ojlmw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8LrX6OgiV4="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -32,
-											"top": -688,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8LrX6Ok7Vs=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8LrX6OgiV4="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -32,
-											"top": -688,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 648.5,
-									"top": 75,
-									"width": 116.9072265625,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8LrX6OhiGg="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8LrX6OiNGI="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8LrX6Ojlmw="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8LrX6Ok7Vs="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8LrX6OleMk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8LrX6OfnoY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8LrX6Od4VU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -16,
-									"top": -344,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8LrX6OmCFo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8LrX6OfnoY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8LrX6Od4VU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -16,
-									"top": -344,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8LrX6Onx1c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8LrX6OfnoY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8LrX6Od4VU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -16,
-									"top": -344,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8LrX6OoDsM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8LrX6OfnoY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8LrX6Od4VU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -16,
-									"top": -344,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8LrX6OpgCE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8LrX6OfnoY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8LrX6Od4VU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -16,
-									"top": -344,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 624,
-							"top": 64,
-							"width": 165,
-							"height": 48,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8LrX6OgiV4="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8LrX6OleMk="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8LrX6OmCFo="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8LrX6Onx1c="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8LrX6OoDsM="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8LrX6OpgCE="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8McIqPOqFA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8McIqPMS04="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8McIqPPvgI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8McIqPOqFA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8McIqPMS04="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8McIqPQlNE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8McIqPPvgI="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 256,
-											"top": -480,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8McIqPR/1E=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8McIqPPvgI="
-											},
-											"font": "Arial;13;1",
-											"left": 855.5,
-											"top": 227.5,
-											"width": 79,
-											"height": 13,
-											"text": "read"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8McIqPSaII=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8McIqPPvgI="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 256,
-											"top": -480,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8McIqPTjHU=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8McIqPPvgI="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 256,
-											"top": -480,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 850.5,
-									"top": 220.5,
-									"width": 89,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8McIqPQlNE="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8McIqPR/1E="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8McIqPSaII="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8McIqPTjHU="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8McIqPUVf4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8McIqPOqFA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8McIqPMS04="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -240,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8McIqPVfJg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8McIqPOqFA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8McIqPMS04="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -240,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8McIqPW4jk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8McIqPOqFA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8McIqPMS04="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -240,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8McIqPXDXo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8McIqPOqFA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8McIqPMS04="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -240,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8McIqPY3iI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8McIqPOqFA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8McIqPMS04="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -240,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 832,
-							"top": 216,
-							"width": 126,
-							"height": 35,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8McIqPPvgI="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8McIqPUVf4="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8McIqPVfJg="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8McIqPW4jk="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8McIqPXDXo="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8McIqPY3iI="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8O4QaP8JVM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8O4QaP6YNs="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8O4QaP9SqA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8O4QaP8JVM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8O4QaP6YNs="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8O4QaP+Mxg=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8O4QaP9SqA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 656,
-											"top": 256,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8O4QaP/ss8=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8O4QaP9SqA="
-											},
-											"font": "Arial;13;1",
-											"left": 809.5,
-											"top": 746.5,
-											"width": 126,
-											"height": 13,
-											"text": "createComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8O4QaQAyL4=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8O4QaP9SqA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 656,
-											"top": 256,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8O4QaQBuTc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8O4QaP9SqA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 656,
-											"top": 256,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 804.5,
-									"top": 739.5,
-									"width": 136,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8O4QaP+Mxg="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8O4QaP/ss8="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8O4QaQAyL4="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8O4QaQBuTc="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8O4QaQCh5c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8O4QaP8JVM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8O4QaP6YNs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 328,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8O4QaQDMrw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8O4QaP8JVM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8O4QaP6YNs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 328,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8O4QqQEN3A=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8O4QaP8JVM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8O4QaP6YNs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 328,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8O4QqQFIKE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8O4QaP8JVM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8O4QaP6YNs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 328,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8O4QqQGKVU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8O4QaP8JVM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8O4QaP6YNs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 328,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 776,
-							"top": 704,
-							"width": 193,
-							"height": 97,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8O4QaP9SqA="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8O4QaQCh5c="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8O4QaQDMrw="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8O4QqQEN3A="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8O4QqQFIKE="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8O4QqQGKVU="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8PfmKQrOsM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8PfmKQpMNk="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8PfmKQsyNY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8PfmKQrOsM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8PfmKQpMNk="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8PfmKQtgYg=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8PfmKQsyNY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 784,
-											"top": -400,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8PfmKQuqZw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8PfmKQsyNY="
-											},
-											"font": "Arial;13;1",
-											"left": 785.5,
-											"top": 458.5,
-											"width": 126,
-											"height": 13,
-											"text": "deleteComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8PfmKQvqog=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8PfmKQsyNY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 784,
-											"top": -400,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8PfmKQwgxA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8PfmKQsyNY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 784,
-											"top": -400,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 780.5,
-									"top": 451.5,
-									"width": 136,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8PfmKQtgYg="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8PfmKQuqZw="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8PfmKQvqog="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8PfmKQwgxA="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8PfmKQx0kk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8PfmKQrOsM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8PfmKQpMNk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 392,
-									"top": -200,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8PfmKQykbg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8PfmKQrOsM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8PfmKQpMNk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 392,
-									"top": -200,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8PfmKQziKE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8PfmKQrOsM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8PfmKQpMNk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 392,
-									"top": -200,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8PfmKQ02jc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8PfmKQrOsM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8PfmKQpMNk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 392,
-									"top": -200,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8PfmKQ1BIU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8PfmKQrOsM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8PfmKQpMNk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 392,
-									"top": -200,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 752,
-							"top": 424,
-							"width": 193,
-							"height": 81,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8PfmKQsyNY="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8PfmKQx0kk="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8PfmKQykbg="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8PfmKQziKE="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8PfmKQ02jc="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8PfmKQ1BIU="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8P6N6RZDco=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8P6N6RXqcw="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8P6N6RanWY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8P6N6RZDco="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8P6N6RXqcw="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8P6N6Rbkjc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8P6N6RanWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 256,
-											"top": -672,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8P6N6RcqDQ=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8P6N6RanWY="
-											},
-											"font": "Arial;13;1",
-											"left": 767,
-											"top": 330,
-											"width": 153,
-											"height": 13,
-											"text": "deleteMultipleComments"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8P6N6Rd8QE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8P6N6RanWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 256,
-											"top": -672,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8P6N6RehiE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8P6N6RanWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 256,
-											"top": -672,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 762,
-									"top": 323,
-									"width": 163.8544921875,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8P6N6Rbkjc="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8P6N6RcqDQ="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8P6N6Rd8QE="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8P6N6RehiE="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8P6N6RfRdY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8P6N6RZDco="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8P6N6RXqcw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -336,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8P6OKRgQfA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8P6N6RZDco="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8P6N6RXqcw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -336,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8P6OKRhlHk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8P6N6RZDco="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8P6N6RXqcw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -336,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8P6OKRil1o=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8P6N6RZDco="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8P6N6RXqcw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -336,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8P6OKRj1GA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8P6N6RZDco="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8P6N6RXqcw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 128,
-									"top": -336,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 728,
-							"top": 296,
-							"width": 231,
-							"height": 80,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8P6N6RanWY="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8P6N6RfRdY="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8P6OKRgQfA="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8P6OKRhlHk="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8P6OKRil1o="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8P6OKRj1GA="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8RpaaSI3HU=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8RpZ6SGnoo="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8RpaaSJB3Q=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8RpaaSI3HU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8RpZ6SGnoo="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8RpaaSK8Kc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8RpaaSJB3Q="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -112,
-											"top": 192,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8RpaaSLXnE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8RpaaSJB3Q="
-											},
-											"font": "Arial;13;1",
-											"left": 249,
-											"top": 459.5,
-											"width": 86,
-											"height": 13,
-											"text": "hideComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8RpaaSM9nA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8RpaaSJB3Q="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -112,
-											"top": 192,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8RpaaSNOAw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8RpaaSJB3Q="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -112,
-											"top": 192,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 244,
-									"top": 452.5,
-									"width": 96.6708984375,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8RpaaSK8Kc="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8RpaaSLXnE="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8RpaaSM9nA="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8RpaaSNOAw="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8RpaaSOWaE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8RpaaSI3HU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8RpZ6SGnoo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -56,
-									"top": 96,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8RpaaSPC6U=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8RpaaSI3HU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8RpZ6SGnoo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -56,
-									"top": 96,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8RpaqSQSk8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8RpaaSI3HU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8RpZ6SGnoo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -56,
-									"top": 96,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8RpaqSRk0M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8RpaaSI3HU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8RpZ6SGnoo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -56,
-									"top": 96,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8RpaqSS51k=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8RpaaSI3HU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8RpZ6SGnoo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -56,
-									"top": 96,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 224,
-							"top": 448,
-							"width": 136,
-							"height": 35,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8RpaaSJB3Q="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8RpaaSOWaE="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8RpaaSPC6U="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8RpaqSQSk8="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8RpaqSRk0M="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8RpaqSS51k="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8TwwqVdQKs=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8TwwqVZYHk="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVeqM0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVZYHk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 204,
-									"top": 111,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVfkO0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVZYHk="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 210,
-									"top": 125,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVgidI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVZYHk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 193,
-									"top": 84,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVhBKw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVa/uM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 235,
-									"top": 100,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqViGNY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVa/uM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 238,
-									"top": 113,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVj4Eo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVa/uM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 229,
-									"top": 73,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVkN9U=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVbNNA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 174,
-									"top": 124,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVlpIo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVbNNA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 181,
-									"top": 135,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8TwwqVm15s=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVbNNA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 160,
-									"top": 100,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8TwwqVnqig=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVa/uM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8TwwqVoqow=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8TwwqVdQKs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8TwwqVbNNA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8DNKqKvWtE="
-							},
-							"lineStyle": 1,
-							"points": "254:83;145:126",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8TwwqVeqM0="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8TwwqVfkO0="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8TwwqVgidI="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8TwwqVhBKw="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8TwwqViGNY="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8TwwqVj4Eo="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8TwwqVkN9U="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8TwwqVlpIo="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8TwwqVm15s="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8TwwqVnqig="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8TwwqVoqow="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8VAuqWnn9g=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8VAuaWlECU="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8VAuqWoVf8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8VAuqWnn9g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8VAuaWlECU="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8VAuqWp4l4=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8VAuqWoVf8="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 112,
-											"top": -160,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8VAuqWqEXk=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8VAuqWoVf8="
-											},
-											"font": "Arial;13;1",
-											"left": 642,
-											"top": 138,
-											"width": 90,
-											"height": 13,
-											"text": "markComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8VAuqWrelo=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8VAuqWoVf8="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 112,
-											"top": -160,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8VAuqWsXnQ=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8VAuqWoVf8="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 112,
-											"top": -160,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 637,
-									"top": 131,
-									"width": 101.025390625,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8VAuqWp4l4="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8VAuqWqEXk="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8VAuqWrelo="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8VAuqWsXnQ="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8VAuqWtgp8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8VAuqWnn9g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8VAuaWlECU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 56,
-									"top": -80,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8VAuqWux3w=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8VAuqWnn9g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8VAuaWlECU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 56,
-									"top": -80,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8VAuqWvFF8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8VAuqWnn9g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8VAuaWlECU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 56,
-									"top": -80,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8VAu6WwYKs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8VAuqWnn9g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8VAuaWlECU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 56,
-									"top": -80,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8VAu6WxSjM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8VAuqWnn9g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8VAuaWlECU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 56,
-									"top": -80,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 616,
-							"top": 120,
-							"width": 142,
-							"height": 48,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8VAuqWoVf8="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8VAuqWtgp8="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8VAuqWux3w="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8VAuqWvFF8="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8VAu6WwYKs="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8VAu6WxSjM="
-							}
-						},
-						{
-							"_type": "UMLExtendView",
-							"_id": "AAAAAAFpe8YGL6YzrdU=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8YGLqYxXt0="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8YGL6Y0x+Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8YGL6YzrdU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8YGLqYxXt0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 792,
-									"top": 198,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8YGL6YzrdU="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8YGL6Y1QpY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8YGL6YzrdU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8YGLqYxXt0="
-									},
-									"font": "Arial;13;0",
-									"left": 760,
-									"top": 212,
-									"width": 53.49169921875,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8YGL6YzrdU="
-									},
-									"edgePosition": 1,
-									"text": "«extend»"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8YGL6Y2Jvw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8YGL6YzrdU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8YGLqYxXt0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 803,
-									"top": 171,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8YGL6YzrdU="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8VAuqWnn9g="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8McIqPOqFA="
-							},
-							"lineStyle": 1,
-							"points": "852:215;744:168",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8YGL6Y0x+Y="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8YGL6Y1QpY="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8YGL6Y2Jvw="
-							}
-						},
-						{
-							"_type": "UMLExtendView",
-							"_id": "AAAAAAFpe8Yi+aZT4Ww=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8Yi+aZRJmM="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8Yi+aZUsGE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8Yi+aZRJmM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 805,
-									"top": 153,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8Yi+aZVp5U=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8Yi+aZRJmM="
-									},
-									"font": "Arial;13;0",
-									"left": 779,
-									"top": 168,
-									"width": 53.49169921875,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
-									},
-									"edgePosition": 1,
-									"text": "«extend»"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8Yi+aZWAEQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8Yi+aZRJmM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 806,
-									"top": 124,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8Yi+aZT4Ww="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8VAuqWnn9g="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8HchqMQw4g="
-							},
-							"lineStyle": 1,
-							"points": "855:146;758:144",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8Yi+aZUsGE="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8Yi+aZVp5U="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8Yi+aZWAEQ="
-							}
-						},
-						{
-							"_type": "UMLExtendView",
-							"_id": "AAAAAAFpe8Y55qZz89s=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8Y55qZx+44="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8Y55qZ0kVg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8Y55qZz89s="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8Y55qZx+44="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 798,
-									"top": 111,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8Y55qZz89s="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8Y55qZ1wrc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8Y55qZz89s="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8Y55qZx+44="
-									},
-									"font": "Arial;13;0",
-									"left": 777,
-									"top": 125,
-									"width": 53.49169921875,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8Y55qZz89s="
-									},
-									"edgePosition": 1,
-									"text": "«extend»"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8Y55qZ2r6s=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8Y55qZz89s="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8Y55qZx+44="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 787,
-									"top": 82,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8Y55qZz89s="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8VAuqWnn9g="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8GOZaLhADo="
-							},
-							"lineStyle": 1,
-							"points": "835:88;751:119",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8Y55qZ0kVg="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8Y55qZ1wrc="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8Y55qZ2r6s="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8ZOYqaVzh8=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8ZOYqaRqtA="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOYqaWzt0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaRqtA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 380,
-									"top": 154,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOYqaXPi4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaRqtA="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 380,
-									"top": 169,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOYqaYspc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaRqtA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 379,
-									"top": 125,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOYqaZXvk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaSkaU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 589,
-									"top": 153,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOYqaafZQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaSkaU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 586,
-									"top": 166,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOY6abI9k=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaSkaU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 593,
-									"top": 125,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOY6acc/4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaTdP4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 171,
-									"top": 156,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOY6admbQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaTdP4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 173,
-									"top": 170,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ZOY6ae7l4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaTdP4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 166,
-									"top": 129,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8ZOY6afrFw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaSkaU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8ZOY6agd1c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ZOYqaVzh8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ZOYqaTdP4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8VAuqWnn9g="
-							},
-							"lineStyle": 1,
-							"points": "615:144;145:148",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8ZOYqaWzt0="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8ZOYqaXPi4="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8ZOYqaYspc="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8ZOYqaZXvk="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8ZOYqaafZQ="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8ZOY6abI9k="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8ZOY6acc/4="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8ZOY6admbQ="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8ZOY6ae7l4="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8ZOY6afrFw="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8ZOY6agd1c="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8bJNKggwGA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8bJMqgcG5E="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgh/3I=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqgcG5E="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 266,
-									"top": 122,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgi5o4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqgcG5E="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 269,
-									"top": 137,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgj35A=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqgcG5E="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 261,
-									"top": 93,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgkdGY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqgdurY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 360,
-									"top": 104,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKglhrg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqgdurY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 360,
-									"top": 118,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgmCN8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqgdurY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 359,
-									"top": 76,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgnn3A=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqge8ag="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 173,
-									"top": 140,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgoBDw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqge8ag="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 178,
-									"top": 153,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8bJNKgptAE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqge8ag="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 163,
-									"top": 114,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8bJNKgq7Ac=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqgdurY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8bJNKgrdeM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8bJNKggwGA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8bJMqge8ag="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8JRqKNAoiA="
-							},
-							"lineStyle": 1,
-							"points": "383:91;145:137",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8bJNKgh/3I="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8bJNKgi5o4="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8bJNKgj35A="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8bJNKgkdGY="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8bJNKglhrg="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8bJNKgmCN8="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8bJNKgnn3A="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8bJNKgoBDw="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8bJNKgptAE="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8bJNKgq7Ac="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8bJNKgrdeM="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8b+DKjvaio=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8b+DKjrrYc="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+DKjwbJ0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjrrYc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 385,
-									"top": 126,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+DKjxpmk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjrrYc="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 386,
-									"top": 141,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+DKjysIk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjrrYc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 382,
-									"top": 97,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+DKjzx8Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjsXws="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 598,
-									"top": 106,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+Daj0vqE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjsXws="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 597,
-									"top": 119,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+Daj1Maw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjsXws="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 600,
-									"top": 78,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+Daj2MUI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjtZ0A="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 172,
-									"top": 148,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+Daj3k/8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjtZ0A="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 175,
-									"top": 161,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8b+Daj4ops=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjtZ0A="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 165,
-									"top": 121,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8b+Daj5uMg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjsXws="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8b+Daj69YE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8b+DKjvaio="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8b+DKjtZ0A="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8LrX6OfnoY="
-							},
-							"lineStyle": 1,
-							"points": "623:95;145:142",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8b+DKjwbJ0="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8b+DKjxpmk="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8b+DKjysIk="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8b+DKjzx8Y="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8b+Daj0vqE="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8b+Daj1Maw="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8b+Daj2MUI="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8b+Daj3k/8="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8b+Daj4ops="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8b+Daj5uMg="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8b+Daj69YE="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8fr16vMtQc=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8fr1avIc20="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vNFxc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avIc20="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 350,
-									"top": 185,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vOE4c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avIc20="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 348,
-									"top": 200,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vPA64=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avIc20="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 353,
-									"top": 156,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vQUoo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avJSV0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 531,
-									"top": 206,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vRVoE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avJSV0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 527,
-									"top": 219,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vSYZs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avJSV0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 538,
-									"top": 180,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vT7GA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avKkKY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 169,
-									"top": 165,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vUmCQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avKkKY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 169,
-									"top": 179,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8fr16vV87M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avKkKY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 167,
-									"top": 138,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8fr16vW1gc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avJSV0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8fr16vX8f4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8fr16vMtQc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8fr1avKkKY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8KLnKNwoas="
-							},
-							"lineStyle": 1,
-							"points": "559:201;145:154",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8fr16vNFxc="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8fr16vOE4c="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8fr16vPA64="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8fr16vQUoo="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8fr16vRVoE="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8fr16vSYZs="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8fr16vT7GA="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8fr16vUmCQ="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8fr16vV87M="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8fr16vW1gc="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8fr16vX8f4="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8gqPK0AlUI=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8gqPKz8mcA="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0B4Gg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz8mcA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 220,
-									"top": 321,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0C/Yc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz8mcA="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 233,
-									"top": 313,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0DGNE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz8mcA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 195,
-									"top": 338,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0EFqg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz9N/8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 163,
-									"top": 232,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0Fr7g=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz9N/8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 176,
-									"top": 227,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0GGRI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz9N/8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 138,
-									"top": 243,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0HlvQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz+4UE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 277,
-									"top": 411,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0Iqnc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz+4UE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 287,
-									"top": 401,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8gqPK0JW0Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz+4UE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 256,
-									"top": 429,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8gqPK0KDLE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz9N/8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8gqPK0Lk+k=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8gqPK0AlUI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8gqPKz+4UE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8RpaaSI3HU="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"lineStyle": 1,
-							"points": "137:225;279:447",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8gqPK0B4Gg="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8gqPK0C/Yc="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8gqPK0DGNE="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8gqPK0EFqg="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8gqPK0Fr7g="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8gqPK0GGRI="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8gqPK0HlvQ="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8gqPK0Iqnc="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8gqPK0JW0Y="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8gqPK0KDLE="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8gqPK0Lk+k="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8g4562OIAg=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8g4562KJq8="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562PNAs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562KJq8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 181,
-									"top": 473,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562QA0I=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562KJq8="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 177,
-									"top": 459,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562Rg/o=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562KJq8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 188,
-									"top": 502,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562SC4I=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562Lk9I="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 166,
-									"top": 477,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562Ttg4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562Lk9I="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 164,
-									"top": 464,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562UzmQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562Lk9I="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 169,
-									"top": 505,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562Vkck=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562MA5U="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 195,
-									"top": 469,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562W7i4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562MA5U="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 190,
-									"top": 457,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8g4562XIrs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562MA5U="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 207,
-									"top": 494,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8g4562Yvsc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562Lk9I="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8g4562ZTcs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8g4562OIAg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8g4562MA5U="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8RpaaSI3HU="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe74tNKJei7k="
-							},
-							"lineStyle": 1,
-							"points": "145:505;225:483",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8g4562PNAs="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8g4562QA0I="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8g4562Rg/o="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8g4562SC4I="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8g4562Ttg4="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8g4562UzmQ="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8g4562Vkck="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8g4562W7i4="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8g4562XIrs="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8g4562Yvsc="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8g4562ZTcs="
-							}
-						},
-						{
-							"_type": "UMLIncludeView",
-							"_id": "AAAAAAFpe8h6z6/lR2k=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8h6z6/jWvo="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8h6z6/mRmA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8h6z6/lR2k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8h6z6/jWvo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 859,
-									"top": 392,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8h6z6/lR2k="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8h6z6/nCOY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8h6z6/lR2k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8h6z6/jWvo="
-									},
-									"font": "Arial;13;0",
-									"left": 847,
-									"top": 391,
-									"width": 55.65625,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8h6z6/lR2k="
-									},
-									"edgePosition": 1,
-									"text": "«include»"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8h6z6/oSwU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8h6z6/lR2k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8h6z6/jWvo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 830,
-									"top": 393,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8h6z6/lR2k="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8PfmKQrOsM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8P6N6RZDco="
-							},
-							"lineStyle": 1,
-							"points": "845:376;846:423",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8h6z6/mRmA="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8h6z6/nCOY="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8h6z6/oSwU="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8iv+7CeqrY=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8iv+rCcljc="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8iv+7CfNPk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8iv+7CeqrY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8iv+rCcljc="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8iv+7Cg1S4=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8iv+7CfNPk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 704,
-											"top": -240,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8iv+7ChFEA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8iv+7CfNPk="
-											},
-											"font": "Arial;13;1",
-											"left": 786.5,
-											"top": 578,
-											"width": 131,
-											"height": 13,
-											"text": "deleteOwnComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8iv+7CiWbM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8iv+7CfNPk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 704,
-											"top": -240,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8iv+7CjKNY=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8iv+7CfNPk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 704,
-											"top": -240,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 781.5,
-									"top": 571,
-									"width": 141,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8iv+7Cg1S4="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8iv+7ChFEA="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8iv+7CiWbM="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8iv+7CjKNY="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8iv+7CkKU0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8iv+7CeqrY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8iv+rCcljc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 352,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8iv+7Clhhw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8iv+7CeqrY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8iv+rCcljc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 352,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8iv+7CmqCo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8iv+7CeqrY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8iv+rCcljc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 352,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8iv+7CnNTc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8iv+7CeqrY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8iv+rCcljc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 352,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8iv+7Co6xE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8iv+7CeqrY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8iv+rCcljc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 352,
-									"top": -120,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 752,
-							"top": 552,
-							"width": 200,
-							"height": 64,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8iv+7CfNPk="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8iv+7CkKU0="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8iv+7Clhhw="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8iv+7CmqCo="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8iv+7CnNTc="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8iv+7Co6xE="
-							}
-						},
-						{
-							"_type": "UMLIncludeView",
-							"_id": "AAAAAAFpe8jZnLHebAU=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8jZnLHcsxc="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8jZnLHfz+0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8jZnLHebAU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8jZnLHcsxc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 834,
-									"top": 521,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8jZnLHebAU="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8jZnLHgpdo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8jZnLHebAU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8jZnLHcsxc="
-									},
-									"font": "Arial;13;0",
-									"left": 792,
-									"top": 521,
-									"width": 55.65625,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8jZnLHebAU="
-									},
-									"edgePosition": 1,
-									"text": "«include»"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8jZnLHhNks=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8jZnLHebAU="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8jZnLHcsxc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 863,
-									"top": 522,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8jZnLHebAU="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8PfmKQrOsM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8iv+7CeqrY="
-							},
-							"lineStyle": 1,
-							"points": "850:551;849:505",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8jZnLHfz+0="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8jZnLHgpdo="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8jZnLHhNks="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8kfKrTVWZo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8kfKrTRv6c="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTW460=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTRv6c="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 464,
-									"top": 609,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTX5Dc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTRv6c="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 468,
-									"top": 595,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTYkZ8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTRv6c="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 455,
-									"top": 638,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTZldw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTSwTM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 174,
-									"top": 523,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTaNOw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTSwTM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 180,
-									"top": 511,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTbYcw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTSwTM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 162,
-									"top": 549,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTcGUk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTTqKs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 754,
-									"top": 695,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTdDbE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTTqKs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 755,
-									"top": 681,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8kfKrTeF08=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTTqKs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 750,
-									"top": 722,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8kfKrTfHlE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTSwTM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8kfKrTgrds=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8kfKrTVWZo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8kfKrTTqKs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8O4QaP8JVM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe74tNKJei7k="
-							},
-							"lineStyle": 1,
-							"points": "145:537;775:723",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8kfKrTW460="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8kfKrTX5Dc="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8kfKrTYkZ8="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8kfKrTZldw="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8kfKrTaNOw="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8kfKrTbYcw="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8kfKrTcGUk="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8kfKrTdDbE="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8kfKrTeF08="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8kfKrTfHlE="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8kfKrTgrds="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8ksjbWB3vw=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8ksjbV9Fno="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWCRYE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV9Fno="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 458,
-									"top": 781,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWD0kM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV9Fno="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 456,
-									"top": 766,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWE/rg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV9Fno="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 461,
-									"top": 810,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWFM9M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV+v48="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 168,
-									"top": 816,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWGnLw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV+v48="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 169,
-									"top": 803,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWH4XM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV+v48="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 168,
-									"top": 844,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWInUI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV/7io="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 747,
-									"top": 746,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWJdOo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV/7io="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 743,
-									"top": 733,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ksjbWKX8Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV/7io="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 755,
-									"top": 773,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8ksjbWLRuU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV+v48="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8ksjbWMHX8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ksjbWB3vw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ksjbV/7io="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8O4QaP8JVM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe73eVqIx8wc="
-							},
-							"lineStyle": 1,
-							"points": "145:841;775:764",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8ksjbWCRYE="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8ksjbWD0kM="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8ksjbWE/rg="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8ksjbWFM9M="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8ksjbWGnLw="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8ksjbWH4XM="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8ksjbWInUI="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8ksjbWJdOo="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8ksjbWKX8Y="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8ksjbWLRuU="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8ksjbWMHX8="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8naz7qLlDg=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8naz7qJ1Z8="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8naz7qMfWY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8naz7qLlDg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8naz7qJ1Z8="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8naz7qNfNY=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8naz7qMfWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 384,
-											"top": 368,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8naz7qOdj4=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8naz7qMfWY="
-											},
-											"font": "Arial;13;1",
-											"left": 809.5,
-											"top": 902.5,
-											"width": 126,
-											"height": 13,
-											"text": "previewComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8naz7qPN7g=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8naz7qMfWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 384,
-											"top": 368,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8naz7qQtrU=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8naz7qMfWY="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 384,
-											"top": 368,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 804.5,
-									"top": 895.5,
-									"width": 136,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8naz7qNfNY="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8naz7qOdj4="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8naz7qPN7g="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8naz7qQtrU="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8naz7qRTZo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8naz7qLlDg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8naz7qJ1Z8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 192,
-									"top": 184,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8naz7qSqE4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8naz7qLlDg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8naz7qJ1Z8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 192,
-									"top": 184,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8naz7qT0fM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8naz7qLlDg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8naz7qJ1Z8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 192,
-									"top": 184,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8naz7qUqBE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8naz7qLlDg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8naz7qJ1Z8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 192,
-									"top": 184,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8naz7qVIDw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8naz7qLlDg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8naz7qJ1Z8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 192,
-									"top": 184,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 776,
-							"top": 880,
-							"width": 193,
-							"height": 57,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8naz7qMfWY="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8naz7qRTZo="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8naz7qSqE4="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8naz7qT0fM="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8naz7qUqBE="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8naz7qVIDw="
-							}
-						},
-						{
-							"_type": "UMLExtendView",
-							"_id": "AAAAAAFpe8oB8LxAw6A=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8oB8Lw+Pyo="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8oB8LxBzI8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8oB8LxAw6A="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8oB8Lw+Pyo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 857,
-									"top": 833,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8oB8LxAw6A="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8oB8LxCa1g=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8oB8LxAw6A="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8oB8Lw+Pyo="
-									},
-									"font": "Arial;13;0",
-									"left": 816,
-									"top": 833,
-									"width": 53.49169921875,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8oB8LxAw6A="
-									},
-									"edgePosition": 1,
-									"text": "«extend»"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8oB8LxDC9c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8oB8LxAw6A="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8oB8Lw+Pyo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 886,
-									"top": 834,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8oB8LxAw6A="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8O4QaP8JVM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8naz7qLlDg="
-							},
-							"lineStyle": 1,
-							"points": "872:879;872:801",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8oB8LxBzI8="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8oB8LxCa1g="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8oB8LxDC9c="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8ogfr1BhhI=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8ogfr0/XnY="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8ogfr1C5yg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ogfr1BhhI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ogfr0/XnY="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8ogfr1DJew=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8ogfr1C5yg="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 544,
-											"top": 256,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8ogfr1ECHc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8ogfr1C5yg="
-											},
-											"font": "Arial;13;1",
-											"left": 382,
-											"top": 858.5,
-											"width": 109,
-											"height": 13,
-											"text": "voteComment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8ogfr1FlWc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8ogfr1C5yg="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 544,
-											"top": 256,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8ogfr1G5W0=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8ogfr1C5yg="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 544,
-											"top": 256,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 377,
-									"top": 851.5,
-									"width": 119,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8ogfr1DJew="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8ogfr1ECHc="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8ogfr1FlWc="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8ogfr1G5W0="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8ogfr1HBbQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ogfr1BhhI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ogfr0/XnY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 272,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8ogfr1IDrE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ogfr1BhhI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ogfr0/XnY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 272,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8ogfr1JjOc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ogfr1BhhI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ogfr0/XnY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 272,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8ogfr1KNb8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ogfr1BhhI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ogfr0/XnY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 272,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8ogfr1L5Ik=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ogfr1BhhI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ogfr0/XnY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 272,
-									"top": 128,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 352,
-							"top": 840,
-							"width": 169,
-							"height": 49,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8ogfr1C5yg="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8ogfr1HBbQ="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8ogfr1IDrE="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8ogfr1JjOc="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8ogfr1KNb8="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8ogfr1L5Ik="
-							}
-						},
-						{
-							"_type": "UMLUseCaseView",
-							"_id": "AAAAAAFpe8pwTL/oqHM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8pwTL/mWkg="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe8pwTL/pxBA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8pwTL/oqHM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8pwTL/mWkg="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8pwTb/qoyE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8pwTL/pxBA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 368,
-											"top": -32,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8pwTb/rutk=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8pwTL/pxBA="
-											},
-											"font": "Arial;13;1",
-											"left": 565,
-											"top": 730.5,
-											"width": 103,
-											"height": 13,
-											"text": "search"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8pwTb/semQ=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8pwTL/pxBA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 368,
-											"top": -32,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model1)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe8pwTb/tM5M=",
-											"_parent": {
-												"$ref": "AAAAAAFpe8pwTL/pxBA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 368,
-											"top": -32,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 560,
-									"top": 723.5,
-									"width": 113,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe8pwTb/qoyE="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe8pwTb/rutk="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe8pwTb/semQ="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe8pwTb/tM5M="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe8pwTb/uw6Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8pwTL/oqHM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8pwTL/mWkg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 184,
-									"top": -16,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe8pwTb/vZM8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8pwTL/oqHM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8pwTL/mWkg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 184,
-									"top": -16,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe8pwTb/wEHo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8pwTL/oqHM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8pwTL/mWkg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 184,
-									"top": -16,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe8pwTb/xhzc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8pwTL/oqHM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8pwTL/mWkg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 184,
-									"top": -16,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLExtensionPointCompartmentView",
-									"_id": "AAAAAAFpe8pwTb/yJQs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8pwTL/oqHM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8pwTL/mWkg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 184,
-									"top": -16,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 536,
-							"top": 704,
-							"width": 161,
-							"height": 65,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe8pwTL/pxBA="
-							},
-							"suppressAttributes": true,
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe8pwTb/uw6Y="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe8pwTb/vZM8="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe8pwTb/wEHo="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe8pwTb/xhzc="
-							},
-							"extensionPointCompartment": {
-								"$ref": "AAAAAAFpe8pwTb/yJQs="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8tar8MJAaM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8tarsMFO18="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MKSkQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMFO18="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 336,
-									"top": 773,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MLJBg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMFO18="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 333,
-									"top": 758,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MMyIs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMFO18="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 343,
-									"top": 802,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MNAS8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMGPXU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 167,
-									"top": 809,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MOgYI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMGPXU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 166,
-									"top": 796,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MPkbs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMGPXU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 168,
-									"top": 837,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MQtOE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMHI3w="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 506,
-									"top": 737,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MR2Jc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMHI3w="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 501,
-									"top": 725,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tar8MSAHA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMHI3w="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 516,
-									"top": 763,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8tar8MTdEs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMGPXU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8tar8MUGFU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tar8MJAaM="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tarsMHI3w="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8pwTL/oqHM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe73eVqIx8wc="
-							},
-							"lineStyle": 1,
-							"points": "145:836;535:753",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8tar8MKSkQ="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8tar8MLJBg="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8tar8MMyIs="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8tar8MNAS8="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8tar8MOgYI="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8tar8MPkbs="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8tar8MQtOE="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8tar8MR2Jc="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8tar8MSAHA="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8tar8MTdEs="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8tar8MUGFU="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8tt78PiJz4=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8tt7sPeam0="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78PjcDw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPeam0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 345,
-									"top": 603,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78PkyaM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPeam0="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 351,
-									"top": 589,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78Pl3vc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPeam0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 334,
-									"top": 630,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78Pmlj4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPfDhY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 174,
-									"top": 532,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78PnduI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPfDhY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 181,
-									"top": 521,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78Po4QE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPfDhY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 160,
-									"top": 556,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78Pp0S0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPgUbQ="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 516,
-									"top": 673,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78PqlzM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPgUbQ="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 519,
-									"top": 660,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8tt78Pre5Q=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPgUbQ="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 510,
-									"top": 700,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8tt78PsYLY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPfDhY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8tt78PtiB0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8tt78PiJz4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8tt7sPgUbQ="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8pwTL/oqHM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe74tNKJei7k="
-							},
-							"lineStyle": 1,
-							"points": "145:543;535:703",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8tt78PjcDw="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8tt78PkyaM="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8tt78Pl3vc="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8tt78Pmlj4="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8tt78PnduI="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8tt78Po4QE="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8tt78Pp0S0="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8tt78PqlzM="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8tt78Pre5Q="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8tt78PsYLY="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8tt78PtiB0="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8t8E8TKTB8=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8t8E8TGI7c="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8E8TLNSQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8TGI7c="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 376,
-									"top": 440,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8E8TMKZI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8TGI7c="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 387,
-									"top": 430,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8E8TNAKk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8TGI7c="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 353,
-									"top": 461,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8E8TO32U=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8THAiU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 173,
-									"top": 214,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8FMTPdDg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8THAiU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 184,
-									"top": 207,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8FMTQEBw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8THAiU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 150,
-									"top": 229,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8FMTRkes=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8TIqpw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 579,
-									"top": 667,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8FMTS7iU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8TIqpw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 588,
-									"top": 657,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8t8FMTT2Xw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8TIqpw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 562,
-									"top": 689,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8t8FMTUn7s=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8THAiU="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8t8FMTV0w8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8t8E8TKTB8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8t8E8TIqpw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8pwTL/oqHM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"lineStyle": 1,
-							"points": "145:211;586:703",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8t8E8TLNSQ="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8t8E8TMKZI="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8t8E8TNAKk="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8t8E8TO32U="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8t8FMTPdDg="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8t8FMTQEBw="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8t8FMTRkes="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8t8FMTS7iU="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8t8FMTT2Xw="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8t8FMTUn7s="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8t8FMTV0w8="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8uLTsXBAdI=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8uLTsW9CsI="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXCX0Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW9CsI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 439,
-									"top": 213,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXDfyY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW9CsI="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 443,
-									"top": 198,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXErBE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW9CsI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 432,
-									"top": 242,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXFYBg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW+X4s="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 173,
-									"top": 147,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXGROE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW+X4s="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 179,
-									"top": 135,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXHsz4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW+X4s="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 163,
-									"top": 173,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXI9Yw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW/5/4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 705,
-									"top": 279,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXJtbs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW/5/4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 706,
-									"top": 265,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8uLTsXKfWU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW/5/4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 702,
-									"top": 306,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8uLTsXLScY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW+X4s="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8uLTsXMHTE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8uLTsXBAdI="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8uLTsW/5/4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8P6N6RZDco="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"lineStyle": 1,
-							"points": "145:162;727:306",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8uLTsXCX0Y="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8uLTsXDfyY="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8uLTsXErBE="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8uLTsXFYBg="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8uLTsXGROE="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8uLTsXHsz4="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8uLTsXI9Yw="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8uLTsXJtbs="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8uLTsXKfWU="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8uLTsXLScY="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8uLTsXMHTE="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8ulw8bHxHs=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8ulw8bDHbo="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulw8bII3A=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bDHbo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 477,
-									"top": 345,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulw8bJ0HA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bDHbo="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 484,
-									"top": 332,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulxMbKLKU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bDHbo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 462,
-									"top": 372,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulxMbLvj8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bECXs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 174,
-									"top": 173,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulxMbMQXY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bECXs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 183,
-									"top": 163,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulxMbNBc0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bECXs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 157,
-									"top": 195,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulxMbOB1I=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bFsgA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 779,
-									"top": 519,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulxMbPIko=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bFsgA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 784,
-									"top": 506,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8ulxMbQ0yI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bFsgA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 770,
-									"top": 545,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8ulxMbR6Q0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bECXs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8ulxMbSmew=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8ulw8bHxHs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8ulw8bFsgA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8iv+7CeqrY="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"lineStyle": 1,
-							"points": "145:180;795:551",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8ulw8bII3A="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8ulw8bJ0HA="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8ulxMbKLKU="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8ulxMbLvj8="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8ulxMbMQXY="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8ulxMbNBc0="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8ulxMbOB1I="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8ulxMbPIko="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8ulxMbQ0yI="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8ulxMbR6Q0="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8ulxMbSmew="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8u/kMfcm+o=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8u/kMfYjtY="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kMfdJ8M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfYjtY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 453,
-									"top": 278,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kMfeiZg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfYjtY="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 459,
-									"top": 264,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kMff9dI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfYjtY="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 442,
-									"top": 305,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kMfg6Tc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfZtxI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 174,
-									"top": 162,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kMfhZYc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfZtxI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 181,
-									"top": 150,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kcfi/j8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfZtxI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 160,
-									"top": 185,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kcfjXhM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfaSd8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 732,
-									"top": 394,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kcfk6vk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfaSd8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 735,
-									"top": 381,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8u/kcflCZo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfaSd8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 726,
-									"top": 421,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8u/kcfmqdU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfZtxI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8u/kcfna8Q=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8u/kMfcm+o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8u/kMfaSd8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8PfmKQrOsM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"lineStyle": 1,
-							"points": "145:172;751:424",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8u/kMfdJ8M="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8u/kMfeiZg="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8u/kMff9dI="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8u/kMfg6Tc="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8u/kMfhZYc="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8u/kcfi/j8="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8u/kcfjXhM="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8u/kcfk6vk="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8u/kcflCZo="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8u/kcfmqdU="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8u/kcfna8Q="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8vN7MkA+Js=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8vN7Mj8nxM="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkBzaI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj8nxM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 446,
-									"top": 472,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkCuxg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj8nxM="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 445,
-									"top": 457,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkD96M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj8nxM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 449,
-									"top": 501,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkEBqs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj9xhM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 169,
-									"top": 493,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkFR1U=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj9xhM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 171,
-									"top": 479,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkGTZQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj9xhM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 167,
-									"top": 520,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkHLOM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj+ei4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 723,
-									"top": 451,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkIQ5w=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj+ei4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 720,
-									"top": 438,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vN7MkJLo8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj+ei4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 730,
-									"top": 479,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8vN7MkK4Fw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj9xhM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8vN7ckLL6M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vN7MkA+Js="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vN7Mj+ei4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8PfmKQrOsM="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe74tNKJei7k="
-							},
-							"lineStyle": 1,
-							"points": "145:516;751:471",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8vN7MkBzaI="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8vN7MkCuxg="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8vN7MkD96M="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8vN7MkEBqs="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8vN7MkFR1U="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8vN7MkGTZQ="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8vN7MkHLOM="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8vN7MkIQ5w="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8vN7MkJLo8="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8vN7MkK4Fw="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8vN7ckLL6M="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8vbCsozdCs=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8vbCsov+gA="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso06vk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsov+gA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 449,
-									"top": 529,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso1Kfw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsov+gA="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 450,
-									"top": 514,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso2+F8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsov+gA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 446,
-									"top": 558,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso3zAE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsowr9g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 172,
-									"top": 506,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso4YYE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsowr9g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 175,
-									"top": 493,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso5DV0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsowr9g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 165,
-									"top": 533,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso6vtQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsoxCCs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 726,
-									"top": 551,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso7PWA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsoxCCs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 725,
-									"top": 538,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8vbCso8YKI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsoxCCs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 728,
-									"top": 579,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8vbCso98nk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsowr9g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8vbCso+c8A=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8vbCsozdCs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8vbCsoxCCs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8iv+7CeqrY="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe74tNKJei7k="
-							},
-							"lineStyle": 1,
-							"points": "145:525;751:575",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8vbCso06vk="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8vbCso1Kfw="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8vbCso2+F8="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8vbCso3zAE="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8vbCso4YYE="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8vbCso5DV0="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8vbCso6vtQ="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8vbCso7PWA="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8vbCso8YKI="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8vbCso98nk="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8vbCso+c8A="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe8xCs86ilRo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe8xCs86e+z0="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCs86jY8g=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86e+z0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 248,
-									"top": 834,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCs86kOZc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86e+z0="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 249,
-									"top": 819,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCs86lhxI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86e+z0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 247,
-									"top": 863,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCs86mvXQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86fW/M="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 171,
-									"top": 831,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCtM6nRyo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86fW/M="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 174,
-									"top": 817,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCtM6of/g=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86fW/M="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 166,
-									"top": 858,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCtM6p1Og=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86gwD0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 325,
-									"top": 837,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCtM6qqcE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86gwD0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 323,
-									"top": 824,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe8xCtM6rgVE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86gwD0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 328,
-									"top": 865,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8xCtM6s47Q=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86fW/M="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe8xCtM6tmSA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe8xCs86ilRo="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe8xCs86gwD0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8ogfr1BhhI="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe73eVqIx8wc="
-							},
-							"lineStyle": 1,
-							"points": "145:851;351:860",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe8xCs86jY8g="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe8xCs86kOZc="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe8xCs86lhxI="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe8xCs86mvXQ="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe8xCtM6nRyo="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8xCtM6of/g="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe8xCtM6p1Og="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe8xCtM6qqcE="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe8xCtM6rgVE="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8xCtM6s47Q="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe8xCtM6tmSA="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe83rMPT91bk=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe83rMPT5oxo="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPT+RHo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT5oxo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 445,
-									"top": 701,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPT/dH0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT5oxo="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 440,
-									"top": 687,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPUAvHs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT5oxo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 454,
-									"top": 730,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPUBNIM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT6N0k="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 164,
-									"top": 799,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPUCVBQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT6N0k="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 162,
-									"top": 786,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPUDPxQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT6N0k="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 169,
-									"top": 826,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPUEtyQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT7ojE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 726,
-									"top": 604,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPUFm6o=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT7ojE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 720,
-									"top": 592,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe83rMPUGpWY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT7ojE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 739,
-									"top": 628,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe83rMPUHxCw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT6N0k="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe83rMPUIEPQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe83rMPT91bk="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe83rMPT7ojE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe8iv+7CeqrY="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe73eVqIx8wc="
-							},
-							"lineStyle": 1,
-							"points": "145:828;756:616",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe83rMPT+RHo="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe83rMPT/dH0="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe83rMPUAvHs="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe83rMPUBNIM="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe83rMPUCVBQ="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe83rMPUDPxQ="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe83rMPUEtyQ="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe83rMPUFm6o="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe83rMPUGpWY="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe83rMPUHxCw="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe83rMPUIEPQ="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpfL3ux8Wdh8o=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7xMGqH8A8A="
-							},
-							"model": {
-								"$ref": "AAAAAAFpfL3uxsWZKZ8="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3ux8WerZc=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWZKZ8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 466,
-									"top": 452,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3ux8WfT7U=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWZKZ8="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 457,
-									"top": 464,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3ux8WgUuo=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWZKZ8="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 485,
-									"top": 429,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3ux8WhpFI=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWab5g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 778,
-									"top": 693,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3ux8WiBa0=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWab5g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 768,
-									"top": 702,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3ux8Wjmys=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWab5g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 798,
-									"top": 673,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3ux8WkIj4=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWbHks="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 156,
-									"top": 213,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3uyMWl4WE=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWbHks="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 150,
-									"top": 225,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpfL3uyMWmZ+0=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWbHks="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 169,
-									"top": 189,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpfL3uyMWnMTI=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWab5g="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpfL3uyMWo42Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpfL3ux8Wdh8o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpfL3uxsWbHks="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe7yoQKIFgzc="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe8O4QaP8JVM="
-							},
-							"lineStyle": 1,
-							"points": "808:703;145:192",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpfL3ux8WerZc="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpfL3ux8WfT7U="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpfL3ux8WgUuo="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpfL3ux8WhpFI="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpfL3ux8WiBa0="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpfL3ux8Wjmys="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpfL3ux8WkIj4="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpfL3uyMWl4WE="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpfL3uyMWmZ+0="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpfL3uyMWnMTI="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpfL3uyMWo42Y="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLActor",
-					"_id": "AAAAAAFpe7yoQKIDgWo=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "Dozent",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8STtKS0MIQ=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8STtKS17oU=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8STtKS0MIQ="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8STtKS2dy4=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8STtKS0MIQ="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8DNKqKt5Jw="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8gqPKz8mcA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8gqPKz9N/8=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8gqPKz8mcA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8gqPKz+4UE=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8gqPKz8mcA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8RpZ6SGnoo="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8k79rY4Nw4=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8k79rY5Gtw=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8k79rY4Nw4="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8k79rY6oOE=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8k79rY4Nw4="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8O4QaP6YNs="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8t8E8TGI7c=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8t8E8THAiU=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8t8E8TGI7c="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8t8E8TIqpw=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8t8E8TGI7c="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8pwTL/mWkg="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8uLTsW9CsI=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8uLTsW+X4s=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8uLTsW9CsI="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8uLTsW/5/4=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8uLTsW9CsI="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8P6N6RXqcw="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8ulw8bDHbo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8ulw8bECXs=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8ulw8bDHbo="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8ulw8bFsgA=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8ulw8bDHbo="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8iv+rCcljc="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8u/kMfYjtY=",
-							"_parent": {
-								"$ref": "AAAAAAFpe7yoQKIDgWo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8u/kMfZtxI=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8u/kMfYjtY="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8u/kMfaSd8=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8u/kMfYjtY="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8PfmKQpMNk="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLActor",
-					"_id": "AAAAAAFpe73eVqIvxOo=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "Student",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8ksjbV9Fno=",
-							"_parent": {
-								"$ref": "AAAAAAFpe73eVqIvxOo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8ksjbV+v48=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8ksjbV9Fno="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe73eVqIvxOo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8ksjbV/7io=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8ksjbV9Fno="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8O4QaP6YNs="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8tarsMFO18=",
-							"_parent": {
-								"$ref": "AAAAAAFpe73eVqIvxOo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8tarsMGPXU=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8tarsMFO18="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe73eVqIvxOo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8tarsMHI3w=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8tarsMFO18="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8pwTL/mWkg="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8xCs86e+z0=",
-							"_parent": {
-								"$ref": "AAAAAAFpe73eVqIvxOo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8xCs86fW/M=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8xCs86e+z0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe73eVqIvxOo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8xCs86gwD0=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8xCs86e+z0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8ogfr0/XnY="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe83rMPT5oxo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe73eVqIvxOo="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe83rMPT6N0k=",
-								"_parent": {
-									"$ref": "AAAAAAFpe83rMPT5oxo="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe73eVqIvxOo="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe83rMPT7ojE=",
-								"_parent": {
-									"$ref": "AAAAAAFpe83rMPT5oxo="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8iv+rCcljc="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLActor",
-					"_id": "AAAAAAFpe74tNKJcZCg=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "Moderator",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8g4562KJq8=",
-							"_parent": {
-								"$ref": "AAAAAAFpe74tNKJcZCg="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8g4562Lk9I=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8g4562KJq8="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe74tNKJcZCg="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8g4562MA5U=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8g4562KJq8="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8RpZ6SGnoo="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8kfKrTRv6c=",
-							"_parent": {
-								"$ref": "AAAAAAFpe74tNKJcZCg="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8kfKrTSwTM=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8kfKrTRv6c="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe74tNKJcZCg="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8kfKrTTqKs=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8kfKrTRv6c="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8O4QaP6YNs="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8tt7sPeam0=",
-							"_parent": {
-								"$ref": "AAAAAAFpe74tNKJcZCg="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8tt7sPfDhY=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8tt7sPeam0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe74tNKJcZCg="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8tt7sPgUbQ=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8tt7sPeam0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8pwTL/mWkg="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8vN7Mj8nxM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe74tNKJcZCg="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8vN7Mj9xhM=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8vN7Mj8nxM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe74tNKJcZCg="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8vN7Mj+ei4=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8vN7Mj8nxM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8PfmKQpMNk="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8vbCsov+gA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe74tNKJcZCg="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8vbCsowr9g=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8vbCsov+gA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe74tNKJcZCg="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8vbCsoxCCs=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8vbCsov+gA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8iv+rCcljc="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCaseSubject",
-					"_id": "AAAAAAFpe7+De6KR5QE=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "Arsnova-lite comment service"
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8DNKqKt5Jw=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "exportComments",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8TwwqVZYHk=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8DNKqKt5Jw="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8TwwqVa/uM=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8TwwqVZYHk="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8DNKqKt5Jw="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8TwwqVbNNA=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8TwwqVZYHk="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8GOZaLfPXg=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "Favorite",
-					"ownedElements": [
-						{
-							"_type": "UMLExtend",
-							"_id": "AAAAAAFpe8Y55qZx+44=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8GOZaLfPXg="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe8GOZaLfPXg="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe8VAuaWlECU="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8HchqMONmE=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "rightAnswer",
-					"ownedElements": [
-						{
-							"_type": "UMLExtend",
-							"_id": "AAAAAAFpe8Yi+aZRJmM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8HchqMONmE="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe8HchqMONmE="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe8VAuaWlECU="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8JRqKM+ipY=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "filterComments",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8bJMqgcG5E=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8JRqKM+ipY="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8bJMqgdurY=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8bJMqgcG5E="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8JRqKM+ipY="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8bJMqge8ag=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8bJMqgcG5E="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8KLnKNuXzA=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "manageModerators",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8fr1avIc20=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8KLnKNuXzA="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8fr1avJSV0=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8fr1avIc20="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8KLnKNuXzA="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8fr1avKkKY=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8fr1avIc20="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8LrX6Od4VU=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "presentComment",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8b+DKjrrYc=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8LrX6Od4VU="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8b+DKjsXws=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8b+DKjrrYc="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8LrX6Od4VU="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8b+DKjtZ0A=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8b+DKjrrYc="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8McIqPMS04=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "read",
-					"ownedElements": [
-						{
-							"_type": "UMLExtend",
-							"_id": "AAAAAAFpe8YGLqYxXt0=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8McIqPMS04="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe8McIqPMS04="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe8VAuaWlECU="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8O4QaP6YNs=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "createComment",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpfL3uxsWZKZ8=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8O4QaP6YNs="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpfL3uxsWab5g=",
-								"_parent": {
-									"$ref": "AAAAAAFpfL3uxsWZKZ8="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8O4QaP6YNs="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpfL3uxsWbHks=",
-								"_parent": {
-									"$ref": "AAAAAAFpfL3uxsWZKZ8="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8PfmKQpMNk=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "deleteComment"
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8P6N6RXqcw=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "deleteMultipleComments",
-					"ownedElements": [
-						{
-							"_type": "UMLInclude",
-							"_id": "AAAAAAFpe8h6z6/jWvo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8P6N6RXqcw="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe8P6N6RXqcw="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe8PfmKQpMNk="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8RpZ6SGnoo=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "hideComment"
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8VAuaWlECU=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "markComment",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe8ZOYqaRqtA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8VAuaWlECU="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8ZOYqaSkaU=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8ZOYqaRqtA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe8VAuaWlECU="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe8ZOYqaTdP4=",
-								"_parent": {
-									"$ref": "AAAAAAFpe8ZOYqaRqtA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe7yoQKIDgWo="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8iv+rCcljc=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "deleteOwnComment",
-					"ownedElements": [
-						{
-							"_type": "UMLInclude",
-							"_id": "AAAAAAFpe8jZnLHcsxc=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8iv+rCcljc="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe8iv+rCcljc="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe8PfmKQpMNk="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8naz7qJ1Z8=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "previewComment",
-					"ownedElements": [
-						{
-							"_type": "UMLExtend",
-							"_id": "AAAAAAFpe8oB8Lw+Pyo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe8naz7qJ1Z8="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe8naz7qJ1Z8="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe8O4QaP6YNs="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8ogfr0/XnY=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "voteComment"
-				},
-				{
-					"_type": "UMLUseCase",
-					"_id": "AAAAAAFpe8pwTL/mWkg=",
-					"_parent": {
-						"$ref": "AAAAAAFpe7xMGqH7VRk="
-					},
-					"name": "search"
-				}
-			]
-		},
-		{
-			"_type": "UMLModel",
-			"_id": "AAAAAAFpe9ROcQmWko8=",
-			"_parent": {
-				"$ref": "AAAAAAFF+h6SjaM2Hec="
-			},
-			"name": "Model3",
-			"ownedElements": [
-				{
-					"_type": "UMLClass",
-					"_id": "AAAAAAFpe9SGnAoTs7U=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "Comment",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe9sc2w4BjJE=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9SGnAoTs7U="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9sc2w4CQ0A=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9sc2w4BjJE="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								},
-								"multiplicity": "0..*"
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9sc2w4DZ4Y=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9sc2w4BjJE="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9bk5QpDsyI="
-								},
-								"multiplicity": "1"
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe+DNtxrKcoA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9SGnAoTs7U="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+DNtxrLbUo=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+DNtxrKcoA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								},
-								"multiplicity": "0..*"
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+DNuBrM4Gk=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+DNtxrKcoA="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								},
-								"aggregation": "shared",
-								"multiplicity": "1"
-							}
-						}
-					],
-					"attributes": [
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpe/QMDqasmDM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9SGnAoTs7U="
-							},
-							"name": "body",
-							"visibility": "private",
-							"type": "string"
-						},
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpe/UfLKqffMM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9SGnAoTs7U="
-							},
-							"name": "creationTimeStamp",
-							"type": "number"
-						},
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpe/Y+qq2kifo=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9SGnAoTs7U="
-							},
-							"name": "score",
-							"type": "number"
-						}
-					]
-				},
-				{
-					"_type": "UMLClass",
-					"_id": "AAAAAAFpe9bk5QpDsyI=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "Room",
-					"attributes": [
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpfDKBObNg+fI=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9bk5QpDsyI="
-							},
-							"name": "name",
-							"type": "string"
-						},
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpfDKvDrUYG18=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9bk5QpDsyI="
-							},
-							"name": "description",
-							"type": "string"
-						}
-					]
-				},
-				{
-					"_type": "UMLClass",
-					"_id": "AAAAAAFpe9cdEApv9ro=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "Dozent",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe9vzGw5zklM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9cdEApv9ro="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9vzGw50AI4=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9vzGw5zklM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9cdEApv9ro="
-								},
-								"multiplicity": "1"
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9vzGw51XIg=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9vzGw5zklM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9bk5QpDsyI="
-								},
-								"multiplicity": "1..*"
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe9xYQA8D0a4=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9cdEApv9ro="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9xYQA8EkEs=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9xYQA8D0a4="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9cdEApv9ro="
-								}
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9xYQA8FyRc=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9xYQA8D0a4="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								}
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe9yv4hANCP0=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9cdEApv9ro="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9yv4hAOWTg=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9yv4hANCP0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9cdEApv9ro="
-								},
-								"navigable": false
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9yv4hAP6I8=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9yv4hANCP0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								}
-							}
-						},
-						{
-							"_type": "UMLGeneralization",
-							"_id": "AAAAAAFpe972OxN2368=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9cdEApv9ro="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe9cdEApv9ro="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLClass",
-					"_id": "AAAAAAFpe9f/bww2l4Q=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "User",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe96SUxHJcGM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe96SUxHKwIM=",
-								"_parent": {
-									"$ref": "AAAAAAFpe96SUxHJcGM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9f/bww2l4Q="
-								},
-								"navigable": false
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe96SUxHL0gw=",
-								"_parent": {
-									"$ref": "AAAAAAFpe96SUxHJcGM="
-								},
-								"name": "create",
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								}
-							}
-						}
-					],
-					"attributes": [
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpfDON1rq3S/U=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							},
-							"name": "role",
-							"type": "UserRole"
-						},
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpfDRQPLz2ulw=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							},
-							"name": "loginId",
-							"type": "string"
-						},
-						{
-							"_type": "UMLAttribute",
-							"_id": "AAAAAAFpfDSNcb6u3DI=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							},
-							"name": "isGuest",
-							"type": "boolean"
-						}
-					]
-				},
-				{
-					"_type": "UMLClass",
-					"_id": "AAAAAAFpe9hDuAxidWQ=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "Moderator",
-					"ownedElements": [
-						{
-							"_type": "UMLGeneralization",
-							"_id": "AAAAAAFpe987XBT3cus=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9hDuAxidWQ="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe9hDuAxidWQ="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe+IUoSAbKNM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9hDuAxidWQ="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+IUoSAcNiE=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+IUoSAbKNM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9hDuAxidWQ="
-								},
-								"navigable": false
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+IUoSAdGwc=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+IUoSAbKNM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLClass",
-					"_id": "AAAAAAFpe9hwjgyOcjs=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "Student",
-					"ownedElements": [
-						{
-							"_type": "UMLGeneralization",
-							"_id": "AAAAAAFpe98dDRRJTJc=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9hwjgyOcjs="
-							},
-							"source": {
-								"$ref": "AAAAAAFpe9hwjgyOcjs="
-							},
-							"target": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe9+vsRaP3xM=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9hwjgyOcjs="
-							},
-							"name": "vote",
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9+vshaQ76o=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9+vsRaP3xM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9hwjgyOcjs="
-								},
-								"navigable": false,
-								"multiplicity": "1"
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe9+vshaRqeo=",
-								"_parent": {
-									"$ref": "AAAAAAFpe9+vsRaP3xM="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9iaRQy60yI="
-								},
-								"multiplicity": "0..1"
-							}
-						},
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe+G60x41kNw=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9hwjgyOcjs="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+G60x42Vwk=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+G60x41kNw="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9hwjgyOcjs="
-								},
-								"navigable": false
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+G60x43hhM=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+G60x41kNw="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								}
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLClass",
-					"_id": "AAAAAAFpe9iaRQy60yI=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "Vote",
-					"ownedElements": [
-						{
-							"_type": "UMLAssociation",
-							"_id": "AAAAAAFpe+BI7xmqpv0=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9iaRQy60yI="
-							},
-							"end1": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+BI7xmrGFc=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+BI7xmqpv0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9iaRQy60yI="
-								},
-								"multiplicity": "0..*"
-							},
-							"end2": {
-								"_type": "UMLAssociationEnd",
-								"_id": "AAAAAAFpe+BI7xmsygg=",
-								"_parent": {
-									"$ref": "AAAAAAFpe+BI7xmqpv0="
-								},
-								"reference": {
-									"$ref": "AAAAAAFpe9SGnAoTs7U="
-								},
-								"multiplicity": "1"
-							}
-						}
-					]
-				},
-				{
-					"_type": "UMLClassDiagram",
-					"_id": "AAAAAAFpe9ROcQmXUrc=",
-					"_parent": {
-						"$ref": "AAAAAAFpe9ROcQmWko8="
-					},
-					"name": "ClassDiagram",
-					"ownedViews": [
-						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFpe9SGnAoVT4E=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9SGnAoTs7U="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe9SGnAoWtf0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9SGnAoVT4E="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9SGnAoTs7U="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9SGnAoXNF8=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9SGnAoWtf0="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -1344,
-											"top": 896,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9SGnAoYFrM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9SGnAoWtf0="
-											},
-											"font": "Arial;13;1",
-											"left": 85,
-											"top": 503,
-											"width": 247,
-											"height": 13,
-											"text": "Comment"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9SGnAoZazE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9SGnAoWtf0="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -1344,
-											"top": 896,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model3)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9SGnAoaXLw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9SGnAoWtf0="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -1344,
-											"top": 896,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 80,
-									"top": 496,
-									"width": 257,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe9SGnAoXNF8="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe9SGnAoYFrM="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe9SGnAoZazE="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe9SGnAoaXLw="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe9SGnAobTsM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9SGnAoVT4E="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9SGnAoTs7U="
-									},
-									"subViews": [
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpe/QMLqavOEM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9SGnAobTsM="
-											},
-											"model": {
-												"$ref": "AAAAAAFpe/QMDqasmDM="
-											},
-											"font": "Arial;13;0",
-											"left": 85,
-											"top": 526,
-											"width": 247,
-											"height": 13,
-											"text": "body: string",
-											"horizontalAlignment": 0
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpe/UfgqqiUKA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9SGnAobTsM="
-											},
-											"model": {
-												"$ref": "AAAAAAFpe/UfLKqffMM="
-											},
-											"font": "Arial;13;0",
-											"left": 85,
-											"top": 541,
-											"width": 247,
-											"height": 13,
-											"text": "creationTimeStamp: number",
-											"horizontalAlignment": 0
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpe/Y+8q2nTYk=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9SGnAobTsM="
-											},
-											"model": {
-												"$ref": "AAAAAAFpe/Y+qq2kifo="
-											},
-											"font": "Arial;13;0",
-											"left": 85,
-											"top": 556,
-											"width": 247,
-											"height": 13,
-											"text": "score: number",
-											"horizontalAlignment": 0
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 80,
-									"top": 521,
-									"width": 257,
-									"height": 53
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe9SGnAocBBI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9SGnAoVT4E="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9SGnAoTs7U="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 80,
-									"top": 531,
-									"width": 51.919921875,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe9SGnAodj7Q=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9SGnAoVT4E="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9SGnAoTs7U="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -672,
-									"top": 448,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe9SGnAoefUQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9SGnAoVT4E="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9SGnAoTs7U="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -672,
-									"top": 448,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 80,
-							"top": 496,
-							"width": 257,
-							"height": 241,
-							"showVisibility": false,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe9SGnAoWtf0="
-							},
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe9SGnAobTsM="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe9SGnAocBBI="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe9SGnAodj7Q="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe9SGnAoefUQ="
-							}
-						},
-						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFpe9bk5gpFT4k=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9bk5QpDsyI="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe9bk5gpGcb8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9bk5gpFT4k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9bk5QpDsyI="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9bk5gpHCZ8=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9bk5gpGcb8="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -512,
-											"top": -192,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9bk5gpIehQ=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9bk5gpGcb8="
-											},
-											"font": "Arial;13;1",
-											"left": 261,
-											"top": 247,
-											"width": 183,
-											"height": 13,
-											"text": "Room"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9bk5gpJhEE=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9bk5gpGcb8="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -512,
-											"top": -192,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model3)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9bk5gpKGiA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9bk5gpGcb8="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -512,
-											"top": -192,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 256,
-									"top": 240,
-									"width": 193,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe9bk5gpHCZ8="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe9bk5gpIehQ="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe9bk5gpJhEE="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe9bk5gpKGiA="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe9bk5gpL+Lg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9bk5gpFT4k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9bk5QpDsyI="
-									},
-									"subViews": [
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpfDKBkrNj/VA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9bk5gpL+Lg="
-											},
-											"model": {
-												"$ref": "AAAAAAFpfDKBObNg+fI="
-											},
-											"font": "Arial;13;0",
-											"left": 261,
-											"top": 270,
-											"width": 183,
-											"height": 13,
-											"text": "name: string",
-											"horizontalAlignment": 0
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpfDKvZ7UbAJ4=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9bk5gpL+Lg="
-											},
-											"model": {
-												"$ref": "AAAAAAFpfDKvDrUYG18="
-											},
-											"font": "Arial;13;0",
-											"left": 261,
-											"top": 285,
-											"width": 183,
-											"height": 13,
-											"text": "description: string",
-											"horizontalAlignment": 0
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 256,
-									"top": 265,
-									"width": 193,
-									"height": 38
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe9bk5gpM3LQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9bk5gpFT4k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9bk5QpDsyI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 256,
-									"top": 275,
-									"width": 224,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe9bk5gpNOWE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9bk5gpFT4k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9bk5QpDsyI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -256,
-									"top": -96,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe9bk5gpOyJM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9bk5gpFT4k="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9bk5QpDsyI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -256,
-									"top": -96,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 256,
-							"top": 240,
-							"width": 193,
-							"height": 129,
-							"showVisibility": false,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe9bk5gpGcb8="
-							},
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe9bk5gpL+Lg="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe9bk5gpM3LQ="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe9bk5gpNOWE="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe9bk5gpOyJM="
-							}
-						},
-						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFpe9dW+QqxoKA=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9cdEApv9ro="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe9dW+Qqyzlk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9dW+QqxoKA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9cdEApv9ro="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9dW+QqzO7U=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9dW+Qqyzlk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 282,
-											"top": -387,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9dW+Qq0A9g=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9dW+Qqyzlk="
-											},
-											"font": "Arial;13;1",
-											"left": 533,
-											"top": 247,
-											"width": 167,
-											"height": 13,
-											"text": "Dozent"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9dW+Qq16Cs=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9dW+Qqyzlk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 282,
-											"top": -387,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model3)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9dW+Qq2mZs=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9dW+Qqyzlk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 282,
-											"top": -387,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 528,
-									"top": 240,
-									"width": 177,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe9dW+QqzO7U="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe9dW+Qq0A9g="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe9dW+Qq16Cs="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe9dW+Qq2mZs="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe9dW+Qq3hF4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9dW+QqxoKA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9cdEApv9ro="
-									},
-									"font": "Arial;13;0",
-									"left": 528,
-									"top": 265,
-									"width": 177,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe9dW+Qq4b/g=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9dW+QqxoKA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9cdEApv9ro="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 528,
-									"top": 275,
-									"width": 144,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe9dW+Qq5ZUo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9dW+QqxoKA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9cdEApv9ro="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 288,
-									"top": -224,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe9dW+Qq654A=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9dW+QqxoKA="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9cdEApv9ro="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 288,
-									"top": -224,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 528,
-							"top": 240,
-							"width": 177,
-							"height": 129,
-							"showVisibility": false,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe9dW+Qqyzlk="
-							},
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe9dW+Qq3hF4="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe9dW+Qq4b/g="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe9dW+Qq5ZUo="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe9dW+Qq654A="
-							}
-						},
-						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFpe9f/cAw472Y=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9f/bww2l4Q="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe9f/cAw51Hk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9f/cAw472Y="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9f/bww2l4Q="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9f/cAw66D8=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9f/cAw51Hk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -320,
-											"top": -960,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9f/cAw7ZeM=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9f/cAw51Hk="
-											},
-											"font": "Arial;13;1",
-											"left": 85,
-											"top": 39,
-											"width": 1063,
-											"height": 13,
-											"text": "User"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9f/cAw8Gjg=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9f/cAw51Hk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -320,
-											"top": -960,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model3)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9f/cAw93Zs=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9f/cAw51Hk="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": -320,
-											"top": -960,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 80,
-									"top": 32,
-									"width": 1073,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe9f/cAw66D8="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe9f/cAw7ZeM="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe9f/cAw8Gjg="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe9f/cAw93Zs="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe9f/cAw+ipQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9f/cAw472Y="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9f/bww2l4Q="
-									},
-									"subViews": [
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpfDOOILq6i4c=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9f/cAw+ipQ="
-											},
-											"model": {
-												"$ref": "AAAAAAFpfDON1rq3S/U="
-											},
-											"font": "Arial;13;0",
-											"left": 85,
-											"top": 62,
-											"width": 1063,
-											"height": 13,
-											"text": "role: UserRole",
-											"horizontalAlignment": 0
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpfDRQgrz59kw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9f/cAw+ipQ="
-											},
-											"model": {
-												"$ref": "AAAAAAFpfDRQPLz2ulw="
-											},
-											"font": "Arial;13;0",
-											"left": 85,
-											"top": 77,
-											"width": 1063,
-											"height": 13,
-											"text": "loginId: string",
-											"horizontalAlignment": 0
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFpfDSNyb6x3wc=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9f/cAw+ipQ="
-											},
-											"model": {
-												"$ref": "AAAAAAFpfDSNcb6u3DI="
-											},
-											"font": "Arial;13;0",
-											"left": 85,
-											"top": 92,
-											"width": 1063,
-											"height": 13,
-											"text": "isGuest: boolean",
-											"horizontalAlignment": 0
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 80,
-									"top": 57,
-									"width": 1073,
-									"height": 53
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe9f/cAw/jo4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9f/cAw472Y="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9f/bww2l4Q="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 80,
-									"top": 67,
-									"width": 51.919921875,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe9f/cAxAE4o=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9f/cAw472Y="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9f/bww2l4Q="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -160,
-									"top": -480,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe9f/cAxB6Co=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9f/cAw472Y="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9f/bww2l4Q="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -160,
-									"top": -480,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 80,
-							"top": 32,
-							"width": 1073,
-							"height": 145,
-							"showVisibility": false,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe9f/cAw51Hk="
-							},
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe9f/cAw+ipQ="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe9f/cAw/jo4="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe9f/cAxAE4o="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe9f/cAxB6Co="
-							}
-						},
-						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFpe9hDuAxk9j4=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9hDuAxidWQ="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe9hDuAxlPzA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hDuAxk9j4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hDuAxidWQ="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hDuAxmPD4=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hDuAxlPzA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 816,
-											"top": -768,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hDuAxnOII=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hDuAxlPzA="
-											},
-											"font": "Arial;13;1",
-											"left": 741,
-											"top": 247,
-											"width": 167,
-											"height": 13,
-											"text": "Moderator"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hDuAxoU3M=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hDuAxlPzA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 816,
-											"top": -768,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model3)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hDuAxp2Hw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hDuAxlPzA="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 816,
-											"top": -768,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 736,
-									"top": 240,
-									"width": 177,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe9hDuAxmPD4="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe9hDuAxnOII="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe9hDuAxoU3M="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe9hDuAxp2Hw="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe9hDuAxqqvA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hDuAxk9j4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hDuAxidWQ="
-									},
-									"font": "Arial;13;0",
-									"left": 736,
-									"top": 265,
-									"width": 177,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe9hDuAxrTc4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hDuAxk9j4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hDuAxidWQ="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 736,
-									"top": 275,
-									"width": 73.55908203125,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe9hDuAxs1/c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hDuAxk9j4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hDuAxidWQ="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 408,
-									"top": -384,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe9hDuAxt43o=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hDuAxk9j4="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hDuAxidWQ="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 408,
-									"top": -384,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 736,
-							"top": 240,
-							"width": 177,
-							"height": 129,
-							"showVisibility": false,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe9hDuAxlPzA="
-							},
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe9hDuAxqqvA="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe9hDuAxrTc4="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe9hDuAxs1/c="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe9hDuAxt43o="
-							}
-						},
-						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFpe9hwjgyQIqw=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9hwjgyOcjs="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe9hwjgyRavQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hwjgyQIqw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hwjgyOcjs="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hwjgyS+fs=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hwjgyRavQ="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 752,
-											"top": -880,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hwjgyTj4Q=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hwjgyRavQ="
-											},
-											"font": "Arial;13;1",
-											"left": 949,
-											"top": 247,
-											"width": 191,
-											"height": 13,
-											"text": "Student"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hwjgyUn/4=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hwjgyRavQ="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 752,
-											"top": -880,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model3)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9hwjgyVznw=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9hwjgyRavQ="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 752,
-											"top": -880,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 944,
-									"top": 240,
-									"width": 201,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe9hwjgyS+fs="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe9hwjgyTj4Q="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe9hwjgyUn/4="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe9hwjgyVznw="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe9hwjgyW6NI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hwjgyQIqw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hwjgyOcjs="
-									},
-									"font": "Arial;13;0",
-									"left": 944,
-									"top": 265,
-									"width": 201,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe9hwjgyXuv0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hwjgyQIqw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hwjgyOcjs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 944,
-									"top": 275,
-									"width": 58.3818359375,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe9hwjgyY4NM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hwjgyQIqw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hwjgyOcjs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 376,
-									"top": -440,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe9hwjgyZ9DI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9hwjgyQIqw="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9hwjgyOcjs="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 376,
-									"top": -440,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 944,
-							"top": 240,
-							"width": 201,
-							"height": 129,
-							"showVisibility": false,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe9hwjgyRavQ="
-							},
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe9hwjgyW6NI="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe9hwjgyXuv0="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe9hwjgyY4NM="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe9hwjgyZ9DI="
-							}
-						},
-						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFpe9iaRQy84Rg=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9iaRQy60yI="
-							},
-							"subViews": [
-								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFpe9iaRQy9kHw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9iaRQy84Rg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9iaRQy60yI="
-									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9iaRQy+Ynk=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9iaRQy9kHw="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 608,
-											"top": 448,
-											"height": 13
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9iaRQy/GtA=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9iaRQy9kHw="
-											},
-											"font": "Arial;13;1",
-											"left": 565,
-											"top": 847,
-											"width": 119,
-											"height": 13,
-											"text": "Vote"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9iaRQzArR8=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9iaRQy9kHw="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 608,
-											"top": 448,
-											"width": 80.9072265625,
-											"height": 13,
-											"text": "(from Model3)"
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFpe9iaRQzBe5Q=",
-											"_parent": {
-												"$ref": "AAAAAAFpe9iaRQy9kHw="
-											},
-											"visible": false,
-											"font": "Arial;13;0",
-											"left": 608,
-											"top": 448,
-											"height": 13,
-											"horizontalAlignment": 1
-										}
-									],
-									"font": "Arial;13;0",
-									"left": 560,
-									"top": 840,
-									"width": 129,
-									"height": 25,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFpe9iaRQy+Ynk="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFpe9iaRQy/GtA="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFpe9iaRQzArR8="
-									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFpe9iaRQzBe5Q="
-									}
-								},
-								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFpe9iaRQzCXNc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9iaRQy84Rg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9iaRQy60yI="
-									},
-									"font": "Arial;13;0",
-									"left": 560,
-									"top": 865,
-									"width": 129,
-									"height": 10
-								},
-								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFpe9iaRQzDKBY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9iaRQy84Rg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9iaRQy60yI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 560,
-									"top": 875,
-									"width": 51.919921875,
-									"height": 10
-								},
-								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFpe9iaRQzEm+s=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9iaRQy84Rg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9iaRQy60yI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 304,
-									"top": 224,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFpe9iaRQzFsHE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9iaRQy84Rg="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9iaRQy60yI="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 304,
-									"top": 224,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"containerChangeable": true,
-							"left": 560,
-							"top": 840,
-							"width": 129,
-							"height": 121,
-							"showVisibility": false,
-							"nameCompartment": {
-								"$ref": "AAAAAAFpe9iaRQy9kHw="
-							},
-							"suppressOperations": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFpe9iaRQzCXNc="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFpe9iaRQzDKBY="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFpe9iaRQzEm+s="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFpe9iaRQzFsHE="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe9sc2w4FKHQ=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9sc2w4BjJE="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4GGyQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4BjJE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": 411,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4HW2I=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4BjJE="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": 396,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4Iu14=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4BjJE="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 296,
-									"top": 441,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4Jdlg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4CQ0A="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 265,
-									"top": 459,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4KCaw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4CQ0A="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 254,
-									"top": 451,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4L3Ak=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4CQ0A="
-									},
-									"font": "Arial;13;0",
-									"left": 280,
-									"top": 474,
-									"width": 19.5126953125,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"edgePosition": 2,
-									"text": "0..*"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4M9xE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 298,
-									"top": 380,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4NLtA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 285,
-									"top": 377,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9sc2w4OCCY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
-									},
-									"font": "Arial;13;0",
-									"left": 327,
-									"top": 387,
-									"width": 7.22998046875,
-									"height": 13,
-									"alpha": 0.7266415087845026,
-									"distance": 25.298221281347036,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"text": "1"
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe9sc2w4PZBo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4CQ0A="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe9sc2w4Q/LA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9sc2w4FKHQ="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9sc2w4DZ4Y="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9bk5gpFT4k="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9SGnAoVT4E="
-							},
-							"lineStyle": 1,
-							"points": "269:495;272:488;272:432;320:432;320:376;323:369",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe9sc2w4GGyQ="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe9sc2w4HW2I="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe9sc2w4Iu14="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe9sc2w4Jdlg="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe9sc2w4KCaw="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe9sc2w4L3Ak="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe9sc2w4M9xE="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe9sc2w4NLtA="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe9sc2w4OCCY="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe9sc2w4PZBo="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe9sc2w4Q/LA="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe9vzHA533mc=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9vzGw5zklM="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA54HKw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw5zklM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 487,
-									"top": 313,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA55M2Q=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw5zklM="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 487,
-									"top": 328,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA56iUI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw5zklM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 488,
-									"top": 283,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA573qE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw50AI4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 501,
-									"top": 312,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA589wc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw50AI4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 498,
-									"top": 326,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA59UPs=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw50AI4="
-									},
-									"font": "Arial;13;0",
-									"left": 502,
-									"top": 285,
-									"width": 7.22998046875,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"edgePosition": 2,
-									"text": "1"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA5+nq0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw51XIg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 474,
-									"top": 312,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA5//VU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw51XIg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 477,
-									"top": 326,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9vzHA6AwX4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw51XIg="
-									},
-									"font": "Arial;13;0",
-									"left": 461,
-									"top": 285,
-									"width": 19.5126953125,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"text": "1..*"
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe9vzHA6BJng=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw50AI4="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe9vzHA6CVI4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9vzHA533mc="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9vzGw51XIg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9bk5gpFT4k="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9dW+QqxoKA="
-							},
-							"lineStyle": 1,
-							"points": "527:304;449:304",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe9vzHA54HKw="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe9vzHA55M2Q="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe9vzHA56iUI="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe9vzHA573qE="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe9vzHA589wc="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe9vzHA59UPs="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe9vzHA5+nq0="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe9vzHA5//VU="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe9vzHA6AwX4="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe9vzHA6BJng="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe9vzHA6CVI4="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe96SVBHN29o=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe96SUxHJcGM="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHO1wQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHJcGM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 223,
-									"top": 177,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHPvZI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHJcGM="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 238,
-									"top": 177,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHQ+uM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHJcGM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 193,
-									"top": 178,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHRgY4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHKwIM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 221,
-									"top": 190,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHSfO4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHKwIM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 221,
-									"top": 204,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHTETw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHKwIM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 220,
-									"top": 162,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHU0qk=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHL0gw="
-									},
-									"font": "Arial;13;0",
-									"left": 152,
-									"top": 287,
-									"width": 43.72265625,
-									"height": 13,
-									"alpha": -6.110784557081414,
-									"distance": 204.0245083317198,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"text": "create"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHVQ2M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHL0gw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 236,
-									"top": 460,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe96SVBHWF9s=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHL0gw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 195,
-									"top": 467,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									}
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe96SVBHXkns=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHKwIM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe96SVBHYekM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe96SVBHN29o="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe96SUxHL0gw="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9SGnAoVT4E="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9f/cAw472Y="
-							},
-							"lineStyle": 1,
-							"points": "244:177;208:184;208:495",
-							"nameLabel": {
-								"$ref": "AAAAAAFpe96SVBHO1wQ="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe96SVBHPvZI="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe96SVBHQ+uM="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe96SVBHRgY4="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe96SVBHSfO4="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe96SVBHTETw="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe96SVBHU0qk="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe96SVBHVQ2M="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe96SVBHWF9s="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe96SVBHXkns="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe96SVBHYekM="
-							}
-						},
-						{
-							"_type": "UMLGeneralizationView",
-							"_id": "AAAAAAFpe972OxN4tj8=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe972OxN2368="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe972OxN5KFA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe972OxN4tj8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe972OxN2368="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 601,
-									"top": 201,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe972OxN4tj8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe972OxN6viU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe972OxN4tj8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe972OxN2368="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 586,
-									"top": 201,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe972OxN4tj8="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe972OxN7i7k=",
-									"_parent": {
-										"$ref": "AAAAAAFpe972OxN4tj8="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe972OxN2368="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 630,
-									"top": 202,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe972OxN4tj8="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9f/cAw472Y="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9dW+QqxoKA="
-							},
-							"lineStyle": 1,
-							"points": "616:239;616:177",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe972OxN5KFA="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe972OxN6viU="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe972OxN7i7k="
-							}
-						},
-						{
-							"_type": "UMLGeneralizationView",
-							"_id": "AAAAAAFpe98dDRRLWM0=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe98dDRRJTJc="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe98dDRRMoZc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe98dDRRLWM0="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe98dDRRJTJc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 1036,
-									"top": 216,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe98dDRRLWM0="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe98dDRRNn6E=",
-									"_parent": {
-										"$ref": "AAAAAAFpe98dDRRLWM0="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe98dDRRJTJc="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 1032,
-									"top": 231,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe98dDRRLWM0="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe98dDRROY6c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe98dDRRLWM0="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe98dDRRJTJc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 1043,
-									"top": 187,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe98dDRRLWM0="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9f/cAw472Y="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9hwjgyQIqw="
-							},
-							"lineStyle": 1,
-							"points": "1041:239;1040:208;914:177",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe98dDRRMoZc="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe98dDRRNn6E="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe98dDRROY6c="
-							}
-						},
-						{
-							"_type": "UMLGeneralizationView",
-							"_id": "AAAAAAFpe987XBT5mjs=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe987XBT3cus="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe987XBT6LL8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe987XBT5mjs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe987XBT3cus="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 817,
-									"top": 215,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe987XBT5mjs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe987XBT7lGY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe987XBT5mjs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe987XBT3cus="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 810,
-									"top": 228,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe987XBT5mjs="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe987XBT8CT4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe987XBT5mjs="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe987XBT3cus="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 830,
-									"top": 188,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe987XBT5mjs="
-									},
-									"edgePosition": 1
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9f/cAw472Y="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9hDuAxk9j4="
-							},
-							"lineStyle": 1,
-							"points": "824:239;824:208;762:177",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe987XBT6LL8="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe987XBT7lGY="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe987XBT8CT4="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe9+vshaTx9w=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe9+vsRaP3xM="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshaUm6c=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vsRaP3xM="
-									},
-									"font": "Arial;13;0",
-									"left": 854,
-									"top": 880,
-									"width": 32.16357421875,
-									"height": 13,
-									"alpha": -0.0646113865719955,
-									"distance": 177.28226081590904,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"edgePosition": 1,
-									"text": "vote"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshaVLQ4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vsRaP3xM="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 1048,
-									"top": 919,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshaW+vA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vsRaP3xM="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 1047,
-									"top": 875,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshaXmw8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaQ76o="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 1059,
-									"top": 388,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshaYl8Q=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaQ76o="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 1072,
-									"top": 391,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshaZHNw=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaQ76o="
-									},
-									"font": "Arial;13;0",
-									"left": 1028,
-									"top": 384,
-									"width": 7.22998046875,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"edgePosition": 2,
-									"text": "1"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshaaXNY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaRqeo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 715,
-									"top": 907,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshabTKg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaRqeo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 717,
-									"top": 921,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe9+vshac+C4=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaRqeo="
-									},
-									"font": "Arial;13;0",
-									"left": 700,
-									"top": 880,
-									"width": 21.68359375,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"text": "0..1"
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe9+vshadakY=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaQ76o="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"top": -8,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe9+vshaeHL8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe9+vshaTx9w="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe9+vshaRqeo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"top": -8,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9iaRQy84Rg="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9hwjgyQIqw="
-							},
-							"lineStyle": 1,
-							"points": "1044:369;1048:896;689:899",
-							"nameLabel": {
-								"$ref": "AAAAAAFpe9+vshaUm6c="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe9+vshaVLQ4="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe9+vshaW+vA="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe9+vshaXmw8="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe9+vshaYl8Q="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe9+vshaZHNw="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe9+vshaaXNY="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe9+vshabTKg="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe9+vshac+C4="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe9+vshadakY="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe9+vshaeHL8="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe+BI8BmulHY=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe+BI7xmqpv0="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8BmvuLE=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmqpv0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 193,
-									"top": 889,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8BmwzYM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmqpv0="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 178,
-									"top": 889,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8Bmxzc8=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmqpv0="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 223,
-									"top": 890,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8BmyI2M=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmrGFc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 532,
-									"top": 907,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8BmzaDo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmrGFc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 530,
-									"top": 921,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8Bm0ZB0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmrGFc="
-									},
-									"font": "Arial;13;0",
-									"left": 528,
-									"top": 880,
-									"width": 19.5126953125,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"edgePosition": 2,
-									"text": "0..*"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8Bm1JTA=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmsygg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 193,
-									"top": 756,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8Bm248E=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmsygg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 179,
-									"top": 759,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+BI8Bm3BCQ=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmsygg="
-									},
-									"font": "Arial;13;0",
-									"left": 217,
-									"top": 752,
-									"width": 7.22998046875,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"text": "1"
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe+BI8Bm4g/0=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmrGFc="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe+BI8Bm5DYI=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+BI8BmulHY="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+BI7xmsygg="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9SGnAoVT4E="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9iaRQy84Rg="
-							},
-							"lineStyle": 1,
-							"points": "559:899;208:896;208:737",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe+BI8BmvuLE="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe+BI8BmwzYM="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe+BI8Bmxzc8="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe+BI8BmyI2M="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe+BI8BmzaDo="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe+BI8Bm0ZB0="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe+BI8Bm1JTA="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe+BI8Bm248E="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe+BI8Bm3BCQ="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe+BI8Bm4g/0="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe+BI8Bm5DYI="
-							}
-						},
-						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFpe+DNuBrOv3g=",
-							"_parent": {
-								"$ref": "AAAAAAFpe9ROcQmXUrc="
-							},
-							"model": {
-								"$ref": "AAAAAAFpe+DNtxrKcoA="
-							},
-							"subViews": [
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuBrPdBc=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNtxrKcoA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 55,
-									"top": 469,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrQRxU=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNtxrKcoA="
-									},
-									"visible": null,
-									"font": "Arial;13;0",
-									"left": 70,
-									"top": 469,
-									"height": 13,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrRzXg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNtxrKcoA="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 25,
-									"top": 470,
-									"height": 13,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"edgePosition": 1
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrSu1w=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNtxrLbUo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 105,
-									"top": 464,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrT7ck=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNtxrLbUo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 91,
-									"top": 461,
-									"height": 13,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"edgePosition": 2
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrUeek=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNtxrLbUo="
-									},
-									"font": "Arial;13;0",
-									"left": 123,
-									"top": 468,
-									"width": 19.5126953125,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"edgePosition": 2,
-									"text": "0..*"
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrVhCM=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNuBrM4Gk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 54,
-									"top": 575,
-									"height": 13,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrWoGo=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNuBrM4Gk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": 51,
-									"top": 561,
-									"height": 13,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									}
-								},
-								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFpe+DNuRrXi6Y=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNuBrM4Gk="
-									},
-									"font": "Arial;13;0",
-									"left": 55,
-									"top": 602,
-									"width": 7.22998046875,
-									"height": 13,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
-									"hostEdge": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"text": "1"
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe+DNuRrYS3k=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNtxrLbUo="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -88,
-									"top": 296,
-									"width": 10,
-									"height": 10
-								},
-								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFpe+DNuRrZYYg=",
-									"_parent": {
-										"$ref": "AAAAAAFpe+DNuBrOv3g="
-									},
-									"model": {
-										"$ref": "AAAAAAFpe+DNuBrM4Gk="
-									},
-									"visible": false,
-									"font": "Arial;13;0",
-									"left": -88,
-									"top": 296,
-									"width": 10,
-									"height": 10
-								}
-							],
-							"font": "Arial;13;0",
-							"head": {
-								"$ref": "AAAAAAFpe9SGnAoVT4E="
-							},
-							"tail": {
-								"$ref": "AAAAAAFpe9SGnAoVT4E="
-							},
-							"points": "120:496;120:476;40:476;40:596;80:596",
-							"showVisibility": true,
-							"nameLabel": {
-								"$ref": "AAAAAAFpe+DNuBrPdBc="
-							},
-							"stereotypeLabel": {
-								"$ref": "AAAAAAFpe+DNuRrQRxU="
-							},
-							"propertyLabel": {
-								"$ref": "AAAAAAFpe+DNuRrRzXg="
-							},
-							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFpe+DNuRrSu1w="
-							},
-							"tailPropertyLabel": {
-								"$ref": "AAAAAAFpe+DNuRrT7ck="
-							},
-							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFpe+DNuRrUeek="
-							},
-							"headRoleNameLabel": {
-								"$ref": "AAAAAAFpe+DNuRrVhCM="
-							},
-							"headPropertyLabel": {
-								"$ref": "AAAAAAFpe+DNuRrWoGo="
-							},
-							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFpe+DNuRrXi6Y="
-							},
-							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFpe+DNuRrYS3k="
-							},
-							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFpe+DNuRrZYYg="
-							}
-						}
-					]
-				}
-			]
-		}
-	]
-}
\ No newline at end of file
diff --git a/docs/diagrams/comments_domain_diagram.png b/docs/diagrams/comments_domain_diagram.png
deleted file mode 100644
index ce60e68d02cf98f98f3923606c6c02c846d74dfb..0000000000000000000000000000000000000000
Binary files a/docs/diagrams/comments_domain_diagram.png and /dev/null differ
diff --git a/docs/diagrams/comments_use_case_diagram.png b/docs/diagrams/comments_use_case_diagram.png
deleted file mode 100644
index ec2a00b801f6b50fc05031c7ea7ae3025a719e51..0000000000000000000000000000000000000000
Binary files a/docs/diagrams/comments_use_case_diagram.png and /dev/null differ
diff --git a/docs/diagrams/domain_model.pdf b/docs/diagrams/domain_model.pdf
deleted file mode 100644
index fbc75808efae81e448e357eb4417c41dfe7d8f32..0000000000000000000000000000000000000000
Binary files a/docs/diagrams/domain_model.pdf and /dev/null differ
diff --git a/docs/diagrams/domain_model.png b/docs/diagrams/domain_model.png
deleted file mode 100644
index 15e151b2090fd86762f248ef05a3b7acd5408875..0000000000000000000000000000000000000000
Binary files a/docs/diagrams/domain_model.png and /dev/null differ
diff --git a/docs/diagrams/domain_model.uxf b/docs/diagrams/domain_model.uxf
deleted file mode 100644
index 6937729c418ff0b859e0f877c8fb8107ce2b790e..0000000000000000000000000000000000000000
--- a/docs/diagrams/domain_model.uxf
+++ /dev/null
@@ -1,469 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<diagram program="umlet" version="14.2">
-  <zoom_level>10</zoom_level>
-  <element>
-    <id>UMLPackage</id>
-    <coordinates>
-      <x>0</x>
-      <y>0</y>
-      <w>1020</w>
-      <h>600</h>
-    </coordinates>
-    <panel_attributes>ARSnova
---
-bg=white
-layer=-1</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>300</x>
-      <y>70</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>User</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>240</x>
-      <y>150</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>Creator</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>380</x>
-      <y>150</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>Participant</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>350</x>
-      <y>90</y>
-      <w>80</w>
-      <h>80</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;40.0;60.0;40.0;60.0;60.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>280</x>
-      <y>90</y>
-      <w>80</w>
-      <h>80</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
-    <additional_attributes>60.0;10.0;60.0;40.0;10.0;40.0;10.0;60.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>240</x>
-      <y>260</y>
-      <w>220</w>
-      <h>50</h>
-    </coordinates>
-    <panel_attributes>Room
-valign=center</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>300</x>
-      <y>400</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>Comment</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>340</x>
-      <y>300</y>
-      <w>100</w>
-      <h>120</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-contains &gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;100.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>150</x>
-      <y>300</y>
-      <w>120</w>
-      <h>120</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-&lt; contains</panel_attributes>
-    <additional_attributes>100.0;10.0;100.0;50.0;10.0;50.0;10.0;100.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>110</x>
-      <y>400</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>Feedback</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>490</x>
-      <y>400</y>
-      <w>100</w>
-      <h>110</h>
-    </coordinates>
-    <panel_attributes>Content
-valign=center</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>440</x>
-      <y>300</y>
-      <w>120</w>
-      <h>120</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-contains &gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;50.0;100.0;50.0;100.0;100.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>670</x>
-      <y>400</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>Statistics</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>670</x>
-      <y>440</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>Round</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>430</x>
-      <y>560</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>TextContent
-</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>550</x>
-      <y>560</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>ChoiceContent</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>470</x>
-      <y>500</y>
-      <w>80</w>
-      <h>80</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
-    <additional_attributes>60.0;10.0;60.0;40.0;10.0;40.0;10.0;60.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>540</x>
-      <y>500</y>
-      <w>80</w>
-      <h>80</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;40.0;60.0;40.0;60.0;60.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>580</x>
-      <y>390</y>
-      <w>110</w>
-      <h>50</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=1
-has &gt;</panel_attributes>
-    <additional_attributes>10.0;20.0;90.0;20.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>580</x>
-      <y>430</y>
-      <w>110</w>
-      <h>50</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-has &gt;</panel_attributes>
-    <additional_attributes>10.0;20.0;90.0;20.0</additional_attributes>
-  </element>
-  <element>
-    <type>CustomElementImpl</type>
-    <coordinates>
-      <x>470</x>
-      <y>610</y>
-      <w>551</w>
-      <h>331</h>
-    </coordinates>
-    <panel_attributes>ARSnova
-arsnova frontend
-THM, FB MNI, WiSe 2017/2018
-https://git.thm.de/swtp-block-ws17/arsnova-angular-frontend
-v0.1
-keiner
-keiner
-Domänendiagramm
-UMLet v14.2
-v2.0
-01.03.2018
-Lukas Mauß, David Donges, Thomas Groß, Lukas Kimpel
-01.03.2018
-Lukas Kimpel
-lukas.kimpel@mni.thm.de</panel_attributes>
-    <additional_attributes/>
-    <custom_code>height=330;
-
-int y=textHeight();
-String[] texts = {
-	"Projekt:",
-	"Projektbezeichnung:",
-	"Projektort und -zeitraum:",
-	"Projekt-Repository:",
-	"Release:",
-	"Staging Server:",
-	"Produktionsserver:",
-	"UML-Diagrammart:",
-	"UML-Tool:",
-	"Modellversion:",
-	"Erstelldatum:",
-	"Ersteller/in:",
-	"Letzte Änderung:",
-	"Letzter Bearbeiter",
-	"E-Mail:"
-};
-
-drawRectangle(0,0,width,height);
-
-for(int i = 0; i&lt;texts.length;i++) {
-	drawLine(0,y+5,width,y+5);
-	drawLine(170,y-20,170,y+5);
-	y += printLeft(texts[i],y);
-	y += 5;
-}
-
-y=textHeight();
-for(String line : textlines) {
-	y += printRight(line,y) + 5;
-}
-</custom_code>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>270</x>
-      <y>170</y>
-      <w>100</w>
-      <h>110</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-creates &gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;70.0;80.0;70.0;80.0;90.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>290</x>
-      <y>170</y>
-      <w>300</w>
-      <h>250</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-creates &gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;50.0;280.0;50.0;280.0;230.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>470</x>
-      <y>140</y>
-      <w>450</w>
-      <h>320</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-creates &gt;</panel_attributes>
-    <additional_attributes>10.0;20.0;430.0;20.0;430.0;300.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>0</x>
-      <y>20</y>
-      <w>490</w>
-      <h>460</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-creates &gt;</panel_attributes>
-    <additional_attributes>470.0;130.0;470.0;10.0;10.0;10.0;10.0;440.0;350.0;440.0;350.0;410.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>70</x>
-      <y>30</y>
-      <w>400</w>
-      <h>440</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-creates &gt;</panel_attributes>
-    <additional_attributes>380.0;120.0;380.0;10.0;10.0;10.0;10.0;420.0;90.0;420.0;90.0;400.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>140</x>
-      <y>40</y>
-      <w>310</w>
-      <h>260</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-&lt; joins</panel_attributes>
-    <additional_attributes>290.0;110.0;290.0;20.0;10.0;20.0;10.0;230.0;100.0;230.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>850</x>
-      <y>440</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>Answer</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>760</x>
-      <y>430</y>
-      <w>110</w>
-      <h>50</h>
-    </coordinates>
-    <panel_attributes>lt=-
-m1=1
-m2=*
-has &gt;</panel_attributes>
-    <additional_attributes>10.0;20.0;90.0;20.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>790</x>
-      <y>520</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>TextAnswer</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>900</x>
-      <y>460</y>
-      <w>80</w>
-      <h>80</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;40.0;60.0;40.0;60.0;60.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>830</x>
-      <y>460</y>
-      <w>80</w>
-      <h>80</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;&lt;-</panel_attributes>
-    <additional_attributes>60.0;10.0;60.0;40.0;10.0;40.0;10.0;60.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>910</x>
-      <y>520</y>
-      <w>100</w>
-      <h>30</h>
-    </coordinates>
-    <panel_attributes>ChoiceAnswer</panel_attributes>
-    <additional_attributes/>
-  </element>
-</diagram>
diff --git a/docs/diagrams/use_case_diagram.pdf b/docs/diagrams/use_case_diagram.pdf
deleted file mode 100644
index 0097ae998073b3a7da48344c431125dd2ce5cf4c..0000000000000000000000000000000000000000
Binary files a/docs/diagrams/use_case_diagram.pdf and /dev/null differ
diff --git a/docs/diagrams/use_case_diagram.png b/docs/diagrams/use_case_diagram.png
deleted file mode 100644
index ff5ab63ab7252716edad19654f10be96930c4cec..0000000000000000000000000000000000000000
Binary files a/docs/diagrams/use_case_diagram.png and /dev/null differ
diff --git a/docs/diagrams/use_case_diagram.uxf b/docs/diagrams/use_case_diagram.uxf
deleted file mode 100644
index b1f7684e393ed3f5beee491cbe9eb857b57f26b9..0000000000000000000000000000000000000000
--- a/docs/diagrams/use_case_diagram.uxf
+++ /dev/null
@@ -1,400 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<diagram program="umlet" version="14.2">
-  <zoom_level>13</zoom_level>
-  <element>
-    <id>UMLActor</id>
-    <coordinates>
-      <x>0</x>
-      <y>208</y>
-      <w>104</w>
-      <h>156</h>
-    </coordinates>
-    <panel_attributes>Participant
-</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>65</x>
-      <y>221</y>
-      <w>442</w>
-      <h>104</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>10.0;10.0;320.0;60.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>884</x>
-      <y>208</y>
-      <w>182</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>join created
-room</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>676</x>
-      <y>481</y>
-      <w>156</w>
-      <h>65</h>
-    </coordinates>
-    <panel_attributes>create content
-for room</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>520</x>
-      <y>65</y>
-      <w>156</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>give a
-comment</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>481</x>
-      <y>169</y>
-      <w>156</w>
-      <h>65</h>
-    </coordinates>
-    <panel_attributes>show content
-in room</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>377</x>
-      <y>715</y>
-      <w>156</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>see feedback</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>975</x>
-      <y>611</y>
-      <w>208</w>
-      <h>65</h>
-    </coordinates>
-    <panel_attributes>see answer statistics</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>806</x>
-      <y>507</y>
-      <w>195</w>
-      <h>156</h>
-    </coordinates>
-    <panel_attributes>lt=.&gt;
-&lt;&lt;extends&gt;&gt;</panel_attributes>
-    <additional_attributes>130.0;100.0;10.0;17.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>1001</x>
-      <y>468</y>
-      <w>169</w>
-      <h>78</h>
-    </coordinates>
-    <panel_attributes>start new 
-voting round</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>819</x>
-      <y>481</y>
-      <w>208</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>lt=.&gt;
-&lt;&lt;extends&gt;&gt;</panel_attributes>
-    <additional_attributes>140.0;20.0;10.0;20.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>156</x>
-      <y>13</y>
-      <w>156</w>
-      <h>39</h>
-    </coordinates>
-    <panel_attributes>ARSnova</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLActor</id>
-    <coordinates>
-      <x>0</x>
-      <y>546</y>
-      <w>78</w>
-      <h>156</h>
-    </coordinates>
-    <panel_attributes>Creator
-</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLClass</id>
-    <coordinates>
-      <x>156</x>
-      <y>13</y>
-      <w>1144</w>
-      <h>949</h>
-    </coordinates>
-    <panel_attributes>
-</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>481</x>
-      <y>273</y>
-      <w>156</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>give feedback
-</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>416</x>
-      <y>598</y>
-      <w>156</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>create room
-</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>26</x>
-      <y>559</y>
-      <w>416</w>
-      <h>91</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>300.0;50.0;10.0;10.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>663</x>
-      <y>637</y>
-      <w>156</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>login</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>546</x>
-      <y>624</y>
-      <w>143</w>
-      <h>65</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;.
-&lt;&lt;include&gt;&gt;</panel_attributes>
-    <additional_attributes>90.0;30.0;10.0;10.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>663</x>
-      <y>78</y>
-      <w>247</w>
-      <h>169</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;.
-&lt;&lt;include&gt;&gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;170.0;110.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>624</x>
-      <y>195</y>
-      <w>286</w>
-      <h>65</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;.
-&lt;&lt;include&gt;&gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;200.0;30.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>624</x>
-      <y>234</y>
-      <w>286</w>
-      <h>91</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;.
-&lt;&lt;include&gt;&gt;</panel_attributes>
-    <additional_attributes>10.0;50.0;200.0;10.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>52</x>
-      <y>507</y>
-      <w>650</w>
-      <h>78</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>10.0;40.0;480.0;10.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>520</x>
-      <y>533</y>
-      <w>260</w>
-      <h>91</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;.
-&lt;&lt;include&gt;&gt;</panel_attributes>
-    <additional_attributes>10.0;50.0;180.0;10.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>429</x>
-      <y>832</y>
-      <w>156</w>
-      <h>78</h>
-    </coordinates>
-    <panel_attributes>see participant's
-comments</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>39</x>
-      <y>598</y>
-      <w>416</w>
-      <h>286</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>10.0;10.0;300.0;200.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>39</x>
-      <y>585</y>
-      <w>364</w>
-      <h>182</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>10.0;10.0;260.0;120.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>520</x>
-      <y>637</y>
-      <w>117</w>
-      <h>130</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;.
-&lt;&lt;include&gt;&gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;10.0;80.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>65</x>
-      <y>195</y>
-      <w>455</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>10.0;20.0;330.0;20.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>65</x>
-      <y>78</y>
-      <w>481</w>
-      <h>156</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>10.0;100.0;350.0;10.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>533</x>
-      <y>624</y>
-      <w>130</w>
-      <h>273</h>
-    </coordinates>
-    <panel_attributes>lt=&lt;.
-&lt;&lt;include&gt;&gt;</panel_attributes>
-    <additional_attributes>10.0;10.0;40.0;190.0</additional_attributes>
-  </element>
-  <element>
-    <id>UMLUseCase</id>
-    <coordinates>
-      <x>338</x>
-      <y>26</y>
-      <w>182</w>
-      <h>52</h>
-    </coordinates>
-    <panel_attributes>give answer
-to a content</panel_attributes>
-    <additional_attributes/>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>403</x>
-      <y>65</y>
-      <w>156</w>
-      <h>156</h>
-    </coordinates>
-    <panel_attributes>lt=.&gt;
-&lt;&lt;extends&gt;&gt;</panel_attributes>
-    <additional_attributes>60.0;100.0;10.0;10.0</additional_attributes>
-  </element>
-  <element>
-    <id>Relation</id>
-    <coordinates>
-      <x>65</x>
-      <y>65</y>
-      <w>351</w>
-      <h>156</h>
-    </coordinates>
-    <panel_attributes/>
-    <additional_attributes>250.0;10.0;10.0;100.0</additional_attributes>
-  </element>
-</diagram>
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index fb9afda9ca93be0e598a9f5cbf071bd9e0bbef4b..5d0598d28842ba7135658d93ad39459b22b41cde 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -3,6 +3,9 @@ import { RouterModule, Routes } from '@angular/router';
 import { PageNotFoundComponent } from './components/shared/page-not-found/page-not-found.component';
 import { HomePageComponent } from './components/home/home-page/home-page.component';
 import { UserHomeComponent } from './components/home/user-home/user-home.component';
+import { ImprintComponent } from './components/home/_dialogs/imprint/imprint.component';
+import { DataProtectionComponent } from './components/home/_dialogs/data-protection/data-protection.component';
+import { HelpPageComponent } from './components/shared/_dialogs/help-page/help-page.component';
 
 const routes: Routes = [
   {
@@ -18,6 +21,18 @@ const routes: Routes = [
     path: 'user',
     component: UserHomeComponent
   },
+  {
+    path: 'imprint',
+    component: ImprintComponent
+  },
+  {
+    path: 'data-protection',
+    component: DataProtectionComponent
+  },
+  {
+    path: 'help-page',
+    component: HelpPageComponent
+  },
   {
     path: 'creator',
     loadChildren: './components/creator/creator.module#CreatorModule'
diff --git a/src/app/app.component.html b/src/app/app.component.html
index e69c12c153e2dd6e94d1dad08fa97d2254db4820..b2c03e2846ae9553519646a49d42f9dd42c73260 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,7 +1,32 @@
-  <div fxLayout="column" fxFill appTheme>
+<script src="models/rescale.ts"></script>
+<div fxLayout="column" fxFill appTheme>
+  <header class="header" id="header_rescale">
     <app-header #header></app-header>
-    <div fxFlex class="app-component">
-      <router-outlet></router-outlet>
+  </header>
+  <div id="rescale_screen">
+    <div class="main_container">
+      <div class="inner_main_container">
+        <main fxFlex class="app-component">
+          <router-outlet></router-outlet>
+        </main>
+      </div>
     </div>
+  </div>
+  <footer role="contentinfo" class="footer" id="footer_rescale">
     <app-footer></app-footer>
+  </footer>
+  <div class="rescale_overlay" id="overlay_rescale" aria-hidden="true">
+    <button mat-icon-button (click)="getRescale().toggleState()" title="toggle">
+      <mat-icon>{{getRescale().getState()==1?'fullscreen':'fullscreen_exit'}}</mat-icon>
+    </button>
+    <button mat-icon-button (click)="getRescale().scaleUp()" title="Zoom +">
+      <mat-icon>zoom_in</mat-icon>
+    </button>
+    <button mat-icon-button (click)="getRescale().scaleDown()" title="Zoom -">
+      <mat-icon>zoom_out</mat-icon>
+    </button>
+    <button mat-icon-button (click)="getRescale().scaleUndo()" title="Reset Zoom">
+      <mat-icon>refresh</mat-icon>
+    </button>
   </div>
+</div>
diff --git a/src/app/app.component.scss b/src/app/app.component.scss
index c88959035ac30935f1a8d318e6a4efbc6368a947..0825e8bbcd93a264c5d53d16c2ac8518b877cd80 100644
--- a/src/app/app.component.scss
+++ b/src/app/app.component.scss
@@ -1,4 +1,73 @@
 .app-component {
   padding: 4%;
+  z-index:1;
+}
+
+main {
+  height: 100%;
+}
+
+#rescale_screen{
+  width:100%;
+  height:100%;
+  float:left;
+  overflow:hidden;
+}
+
+.main_container{
+  width:100%;
+  height:100%;
+  overflow-y:auto;
   background-color:var(--background);
 }
+
+.inner_main_container{
+  width:100%;
+  margin-top:64px;
+  margin-bottom:64px;
+  float:left;
+}
+
+.header{
+  width:100%;
+  position:fixed;
+  left:0;
+  top:0;
+  z-index:2;
+  transition:all 0.2s ease-in-out;
+}
+
+.footer{
+  width:100%;
+  position:fixed;
+  left:0;
+  bottom:0;
+  z-index:2;
+  transition:all 0.2s ease-in-out;
+}
+
+.rescale_overlay{
+  width:190px;
+  height:50px;
+  border-radius:0px 25px 25px 0px;
+  background-color:var(--surface);
+  position:fixed;
+  left:-100px;
+  top:15px;
+  z-index:2;
+  display:none;
+  box-shadow:0px 2px 4px rgba(0,0,0,0.5);
+  transition:all 0.2s ease-in-out;
+}
+
+.rescale_overlay>button{
+  margin-top:5px;
+}
+
+.rescale_overlay mat-icon{
+  color:var(--on-surface);
+}
+
+.rescale_overlay>button:first-child{
+  margin-left:15px;
+}
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 13841fd0256da49cf0e9b0ca2e831e55d800b36a..c1fdcba5bfeb01956aeecd1e3fbb0f5d673670a8 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -4,6 +4,7 @@ import { SwUpdate } from '@angular/service-worker';
 import { NotificationService } from './services/util/notification.service';
 import { MatIconRegistry } from '@angular/material';
 import { DomSanitizer } from '@angular/platform-browser';
+import { Rescale } from './models/rescale';
 
 @Component({
   selector: 'app-root',
@@ -12,6 +13,13 @@ import { DomSanitizer } from '@angular/platform-browser';
 })
 export class AppComponent implements OnInit {
 
+  public static rescale: Rescale = new Rescale();
+
+  icons = [
+    'beamer',
+    'meeting_room'
+  ];
+
   constructor(private translationService: TranslateService,
               private update: SwUpdate,
               public notification: NotificationService,
@@ -19,10 +27,12 @@ export class AppComponent implements OnInit {
               private domSanitizer: DomSanitizer) {
     translationService.setDefaultLang(this.translationService.getBrowserLang());
     sessionStorage.setItem('currentLang', this.translationService.getBrowserLang());
-    this.matIconRegistry.addSvgIcon(
-      'beamer',
-      this.domSanitizer.bypassSecurityTrustResourceUrl('../assets/icons/beamer-icon.svg')
-    );
+    for (const icon of this.icons) {
+      this.matIconRegistry.addSvgIcon(
+        icon,
+        this.domSanitizer.bypassSecurityTrustResourceUrl('../assets/icons/' + icon + '.svg')
+      );
+    }
   }
 
   title = 'frag.jetzt';
@@ -45,4 +55,8 @@ export class AppComponent implements OnInit {
       });
     });
   }
+
+  public getRescale(): Rescale {
+    return AppComponent.rescale;
+  }
 }
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 698f821e9f342870bd5911751601b8f5b599230f..75d38da8e968e9955baa865528047cc149bf2a2f 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -42,6 +42,21 @@ import { HomeCreatorPageComponent } from './components/home/home-creator-page/ho
 import { HomeParticipantPageComponent } from './components/home/home-participant-page/home-participant-page.component';
 import { CommentSettingsService } from './services/http/comment-settings.service';
 import { ModeratorModule } from './components/moderator/moderator.module';
+import { ImprintComponent } from './components/home/_dialogs/imprint/imprint.component';
+import { DataProtectionComponent } from './components/home/_dialogs/data-protection/data-protection.component';
+import { HelpPageComponent } from './components/shared/_dialogs/help-page/help-page.component';
+import { CookiesComponent } from './components/home/_dialogs/cookies/cookies.component';
+import { DataProtectionEnComponent } from '../assets/i18n/data-protection/data-protection-en';
+import { DataProtectionDeComponent } from 'assets/i18n/data-protection/data-protection-de';
+import { CookiesEnComponent } from '../assets/i18n/cookies/cookies-en';
+import { CookiesDeComponent } from '../assets/i18n/cookies/cookies-de';
+import { ImprintEnComponent } from '../assets/i18n/imprint/imprint-en';
+import { ImprintDeComponent } from '../assets/i18n/imprint/imprint-de';
+import { HelpDeComponent } from '../assets/i18n/help/help-de';
+import { HelpEnComponent } from '../assets/i18n/help/help-en';
+import { OverlayComponent } from './components/home/_dialogs/overlay/overlay.component';
+import { DemoDeComponent } from '../assets/i18n/demo/demo-de';
+import { DemoEnComponent } from '../assets/i18n/demo/demo-en';
 
 export function dialogClose(dialogResult: any) {
 }
@@ -50,6 +65,7 @@ export function initializeApp(appConfig: AppConfig) {
   return () => appConfig.load();
 }
 
+// @ts-ignore
 @NgModule({
   declarations: [
     AppComponent,
@@ -61,13 +77,31 @@ export function initializeApp(appConfig: AppConfig) {
     DemoVideoComponent,
     UserHomeComponent,
     HomeCreatorPageComponent,
-    HomeParticipantPageComponent
+    HomeParticipantPageComponent,
+    ImprintComponent,
+    DataProtectionComponent,
+    HelpPageComponent,
+    CookiesComponent,
+    DataProtectionEnComponent,
+    DataProtectionDeComponent,
+    CookiesEnComponent,
+    CookiesDeComponent,
+    ImprintEnComponent,
+    ImprintDeComponent,
+    HelpDeComponent,
+    HelpEnComponent,
+    DemoDeComponent,
+    DemoEnComponent,
+    HelpEnComponent,
+    OverlayComponent
   ],
   entryComponents: [
     RegisterComponent,
     PasswordResetComponent,
     UserActivationComponent,
-    DemoVideoComponent
+    DemoVideoComponent,
+    CookiesComponent,
+    OverlayComponent
   ],
   imports: [
     AppRoutingModule,
diff --git a/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.html b/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.html
index 145fad25c0608b9feb327f242af116708d50bcfd..ad652b6bf2911415109b87e1311a06a8bba89598 100644
--- a/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.html
+++ b/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.html
@@ -1,10 +1,12 @@
 <div *ngIf="answer">
   <mat-form-field class="input-block">
-    <input [(ngModel)]="answer.answerOption.label" matInput
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           [(ngModel)]="answer.answerOption.label" matInput
            placeholder="{{ 'content.answer' | translate }}" name="answer-label"/>
   </mat-form-field>
   <mat-form-field class="input-block">
-    <input [(ngModel)]="answer.answerOption.points" matInput
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           [(ngModel)]="answer.answerOption.points" matInput
            placeholder="{{ 'content.points' | translate }}" name="points">
   </mat-form-field>
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
diff --git a/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.ts b/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.ts
index f3e4028f36c34de85b634477207dfb1403e915c3..1bdd067ada3e887272d87209617f4761e330c7ea 100644
--- a/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.ts
+++ b/src/app/components/creator/_dialogs/answer-edit/answer-edit.component.ts
@@ -1,6 +1,9 @@
 import { Component, Inject, OnInit } from '@angular/core';
 import { ContentChoiceCreatorComponent, DisplayAnswer } from '../../content-choice-creator/content-choice-creator.component';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
+import { EventService } from '../../../../services/util/event.service';
+
+
 
 @Component({
   selector: 'app-answer-edit',
@@ -11,7 +14,8 @@ export class AnswerEditComponent implements OnInit {
   answer: DisplayAnswer;
 
   constructor(public dialogRef: MatDialogRef<ContentChoiceCreatorComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) {
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              public eventService: EventService) {
   }
 
   ngOnInit() {
diff --git a/src/app/components/creator/_dialogs/comment-export/comment-export.component.html b/src/app/components/creator/_dialogs/comment-export/comment-export.component.html
index eb011f21c0c305c169627a45e2b18031c2b81ed7..ae7ad338140c8b2b0ef9459721d8abcf8fe3493e 100644
--- a/src/app/components/creator/_dialogs/comment-export/comment-export.component.html
+++ b/src/app/components/creator/_dialogs/comment-export/comment-export.component.html
@@ -1,14 +1,15 @@
 <div fxLayout="column" fxLayoutAlign="center center" fxLayoutGap="35px">
-    <h3>{{'comment-page.delimiter' | translate}}</h3>
-    <mat-radio-group [(ngModel)]="exportType">
-      <div fxLayout="column">
-        <mat-radio-button value="comma" checked><h4>{{'comment-page.comma' | translate}}</h4></mat-radio-button>
-        <mat-radio-button value="semicolon"><h4>{{'comment-page.semicolon' | translate}}</h4></mat-radio-button>
-      </div>
-    </mat-radio-group>
-  <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="20px">
-  <button mat-raised-button class="abort" (click)="onNoClick()">{{'comment-page.abort' | translate}}</button>
-    <button mat-raised-button class="export"
-            (click)="dialogRef.close(exportType)">{{'comment-page.export' | translate}}</button>
-  </div>
+  <h1>{{'comment-page.delimiter' | translate}}</h1>
+  <mat-radio-group [(ngModel)]="exportType">
+    <div fxLayout="column">
+      <mat-radio-button value="comma" checked><p>{{'comment-page.comma' | translate}}</p></mat-radio-button>
+      <mat-radio-button value="semicolon"><p>{{'comment-page.semicolon' | translate}}</p></mat-radio-button>
+    </div>
+  </mat-radio-group>
 </div>
+<app-dialog-action-buttons
+  buttonsLabelSection="comment-page"
+  confirmButtonLabel="export"
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildExportActionCallback()"
+></app-dialog-action-buttons>
diff --git a/src/app/components/creator/_dialogs/comment-export/comment-export.component.scss b/src/app/components/creator/_dialogs/comment-export/comment-export.component.scss
index 85aca4dc328a7d5cfd2872a3376a815331252200..30451aefd8cc9c0422548e069b7e015881793425 100644
--- a/src/app/components/creator/_dialogs/comment-export/comment-export.component.scss
+++ b/src/app/components/creator/_dialogs/comment-export/comment-export.component.scss
@@ -2,13 +2,12 @@ button {
   min-width: 100px;
 }
 
-h3 {
+h1 {
   font-size: large;
   color: var(--on-surface);
 }
 
-h4 {
-  margin: 15px 0 15px 0;
+p {
   color: var(--on-surface);
 }
 
diff --git a/src/app/components/creator/_dialogs/comment-export/comment-export.component.ts b/src/app/components/creator/_dialogs/comment-export/comment-export.component.ts
index 1dc6f0ed2006f61bdb4bc22f3392abfabc023fc1..257fdb78e0dda146a5a1f3d4399f35f4ec3e0a42 100644
--- a/src/app/components/creator/_dialogs/comment-export/comment-export.component.ts
+++ b/src/app/components/creator/_dialogs/comment-export/comment-export.component.ts
@@ -16,8 +16,27 @@ export class CommentExportComponent implements OnInit {
   ngOnInit() {
   }
 
-  onNoClick(): void {
+
+  /**
+   * Closes the dialog on call.
+   */
+  closeDialog(): void {
     this.dialogRef.close();
   }
-}
 
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.closeDialog();
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildExportActionCallback(): () => void {
+    return () => this.dialogRef.close(this.exportType);
+  }
+}
diff --git a/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.html b/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.html
index 0be381e962f1d784a93c89c9029d7bcaecfe768c..abee4313b08f4a2a20b2e8dbf0b9562f22db6817 100644
--- a/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.html
+++ b/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.html
@@ -1,44 +1,49 @@
 <div mat-dialog-content>
-  <h2>{{'room-page.comments' | translate }}</h2>
+  <h1>{{'room-page.comments' | translate }}</h1>
   <mat-divider></mat-divider>
   <div fxLayout="column">
     <div fxLayout="row">
-      <h3>{{ 'room-page.threshold' | translate}}&nbsp;</h3>
-      <h3><mat-slide-toggle [(ngModel)]="settingThreshold"></mat-slide-toggle></h3>
+      <h2>{{ 'room-page.threshold' | translate}}&nbsp;
+        <mat-slide-toggle [(ngModel)]="settingThreshold" aria-labelledby="threshold" ></mat-slide-toggle></h2>
     </div>
     <div fxLayout="row" *ngIf="settingThreshold">
-      <mat-slider id="commentSlider" min="-100" max="0" step="10" value="0"
+      <mat-slider id="commentSlider" min="-100" max="0" step="5"
                 [(ngModel)]="commentThreshold" (input)="onSliderChange($event)"></mat-slider>
-      <h3>&nbsp;{{commentThreshold | number}}</h3>
+      <h2>&nbsp;{{commentThreshold | number}}</h2>
     </div>
   </div>
   <div fxLayout="column">
     <div fxLayout="row">
-      <h3>{{ 'room-page.settings-comment-moderation' | translate}}&nbsp;</h3>
-      <h3><mat-slide-toggle [(ngModel)]="enableCommentModeration"></mat-slide-toggle></h3>
+      <h2>{{ 'room-page.settings-comment-moderation' | translate}}&nbsp;
+      <mat-slide-toggle [(ngModel)]="enableCommentModeration" aria-labelledby="settings-comment-moderation"></mat-slide-toggle></h2>
     </div>
     <div fxLayout="row" *ngIf="enableCommentModeration">
-      <h3>{{ 'room-page.settings-direct-send' | translate}}&nbsp;</h3>
-      <h3><mat-slide-toggle [(ngModel)]="directSend"></mat-slide-toggle></h3>
+      <h2>{{ 'room-page.settings-direct-send' | translate}}&nbsp;
+      <mat-slide-toggle [(ngModel)]="directSend" aria-labelledby="settings-direct-send"></mat-slide-toggle></h2>
     </div>
   </div>
   <div fxLayoutAlign="center center">
-    <button mat-raised-button class="export" (click)="openExportDialog()">
-      <mat-icon>cloud_download</mat-icon>
+    <button mat-raised-button class="export" (click)="openExportDialog()" aria-labelledby="export-comments">
+      <mat-icon>save</mat-icon>
       {{ 'room-page.export-comments' | translate }}</button>
   </div>
   <div fxLayoutAlign="center center">
-    <button mat-raised-button class="delete" (click)="openDeleteCommentDialog()">
+    <button mat-raised-button class="delete" (click)="openDeleteCommentDialog()" aria-labelledby="delete-all-comments">
       <mat-icon>delete</mat-icon>
       {{ 'room-page.delete-all-comments' | translate }}</button>
   </div>
-  <mat-divider></mat-divider>
-  <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px" class="submit">
-    <button mat-raised-button class="abort" (click)="dialogRef.close('abort')">
-      {{ 'room-page.abort' | translate }}
-    </button>
-    <button mat-raised-button class="update" (click)="closeDialog()">
-      {{ 'room-page.update' | translate }}
-    </button>
-  </div>
+  <app-dialog-action-buttons
+    buttonsLabelSection="room-page"
+    confirmButtonLabel="update"
+    [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+    [confirmButtonClickAction]="buildSaveActionCallback()"
+  ></app-dialog-action-buttons>
+</div>
+
+<div class="visually-hidden">
+  <div id = "threshold">{{'room-page.a11y-threshold' | translate}} </div>
+  <div id = "settings-comment-moderation">{{'room-page.a11y-settings-comment-moderation' | translate}} </div>
+  <div id = "settings-direct-send">{{'room-page.a11y-settings-direct-send' | translate}} </div>
+  <div id = "export-comments">{{'room-page.a11y-export-comments' | translate}} </div>
+  <div id = "delete-all-comments">{{'room-page.a11y-delete-all-comments' | translate}} </div>
 </div>
diff --git a/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.scss b/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.scss
index 9fbf79bb944ca0bef41f18c851cc98fdf10e766d..c9e135147bd07f2161420f3d941e3d27c1bee39c 100644
--- a/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.scss
+++ b/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.scss
@@ -24,14 +24,15 @@ mat-icon {
   margin-right: 10px;
 }
 
-h2 {
+h1 {
   margin: 10px 0 10px 0;
   color: var(--on-surface);
 }
 
-h3 {
+h2 {
   color: var(--on-surface);
   font-weight: normal;
+  font-size: medium;
 }
 
 mat-divider {
diff --git a/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.ts b/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.ts
index ddaca7bddcdfa42d4af26fd910a80b65ff3786c3..f3aaa846bd1568af6ae32ec6657a4f7fd7a34d45 100644
--- a/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.ts
+++ b/src/app/components/creator/_dialogs/comment-settings/comment-settings.component.ts
@@ -45,7 +45,11 @@ export class CommentSettingsComponent implements OnInit {
   ngOnInit() {
     if (this.editRoom.extensions && this.editRoom.extensions['comments']) {
       if (this.editRoom.extensions['comments'].enableThreshold !== null) {
-        this.commentThreshold = this.editRoom.extensions['comments'].commentThreshold;
+        if (this.editRoom.extensions['comments'].commentThreshold) {
+          this.commentThreshold = this.editRoom.extensions['comments'].commentThreshold;
+        } else {
+          this.commentThreshold = -100;
+        }
         this.settingThreshold = this.editRoom.extensions['comments'].enableThreshold;
       }
 
@@ -131,6 +135,7 @@ export class CommentSettingsComponent implements OnInit {
   }
 
   closeDialog(): void {
+    console.log(this.commentThreshold);
     const commentSettings = new CommentSettings();
     commentSettings.roomId = this.roomId;
     commentSettings.directSend = this.directSend;
@@ -143,4 +148,20 @@ export class CommentSettingsComponent implements OnInit {
       this.dialogRef.close(settingsReturn);
     });
   }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.dialogRef.close('abort');
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildSaveActionCallback(): () => void {
+    return () => this.closeDialog();
+  }
 }
diff --git a/src/app/components/creator/_dialogs/content-edit/content-edit.component.html b/src/app/components/creator/_dialogs/content-edit/content-edit.component.html
index c54319eef7fb56c18e241c69427d4e2b46f9f5d9..a2e539ff8656d862e9bb1c60449786e3cd0d4868 100644
--- a/src/app/components/creator/_dialogs/content-edit/content-edit.component.html
+++ b/src/app/components/creator/_dialogs/content-edit/content-edit.component.html
@@ -1,16 +1,19 @@
 <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="10px">
   <mat-form-field>
-    <input matInput [(ngModel)]="content.subject" maxlength="40" placeholder="{{'content.subject' | translate}}" name="subject"/>
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput [(ngModel)]="content.subject" maxlength="40" placeholder="{{'content.subject' | translate}}" name="subject"/>
   </mat-form-field>
   <mat-form-field>
-    <textarea matInput [(ngModel)]="content.body" rows="3" maxlength="255" placeholder="{{'content.body' | translate}}" name="body"></textarea>
+    <textarea (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+              matInput [(ngModel)]="content.body" rows="3" maxlength="255" placeholder="{{'content.body' | translate}}" name="body"></textarea>
   </mat-form-field>
   <h4>{{'content.answers' | translate}}</h4>
   <mat-table [dataSource]="displayAnswers">
     <ng-container matColumnDef="label">
       <mat-cell *matCellDef="let answer">
         <mat-form-field class="input-block">
-          <input matInput [(ngModel)]="answer.answerOption.label" maxlength="50" name="answer"/>
+          <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+                 matInput [(ngModel)]="answer.answerOption.label" maxlength="50" name="answer"/>
         </mat-form-field>
       </mat-cell>
     </ng-container>
diff --git a/src/app/components/creator/_dialogs/content-edit/content-edit.component.ts b/src/app/components/creator/_dialogs/content-edit/content-edit.component.ts
index 4cdeeb591304253dab6d11829eab4c58242eb0ef..6aed5b8618d9c1dfca09a457d6b0a27624870a1e 100644
--- a/src/app/components/creator/_dialogs/content-edit/content-edit.component.ts
+++ b/src/app/components/creator/_dialogs/content-edit/content-edit.component.ts
@@ -6,6 +6,7 @@ import { ContentChoice } from '../../../../models/content-choice';
 import { AnswerOption } from '../../../../models/answer-option';
 import { TranslateService } from '@ngx-translate/core';
 import { NotificationService } from '../../../../services/util/notification.service';
+import { EventService } from '../../../../services/util/event.service';
 
 @Component({
   selector: 'app-content-edit',
@@ -21,7 +22,8 @@ export class ContentEditComponent implements OnInit {
   constructor(private translateService: TranslateService,
               private notificationService: NotificationService,
               public dialogRef: MatDialogRef<ContentListComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) {
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              public eventService: EventService) {
   }
 
   ngOnInit() {
diff --git a/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html b/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html
index 5c6a319286629042b66f1d8e85f3c7ee2a15e76c..481c7295862f174425fbec53d461ce923e73ca32 100644
--- a/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html
+++ b/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.html
@@ -1,11 +1,10 @@
 <h3>{{ 'room-page.sure' | translate }}</h3>
 <mat-divider></mat-divider>
 <p>{{ 'comment-list.really-delete' | translate }}</p>
-<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
-  <button mat-raised-button class="abort" (click)="close('abort')">
-    {{ 'content.abort' | translate }}
-  </button>
-  <button mat-raised-button class="delete" (click)="close('delete')">
-    {{ 'content.delete' | translate }}
-  </button>
-</div>
+<app-dialog-action-buttons
+  buttonsLabelSection="content"
+  confirmButtonLabel="delete"
+  [confirmButtonType]=confirmButtonType
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildCommentDeleteActionCallback()"
+></app-dialog-action-buttons>
diff --git a/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.ts b/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.ts
index f26f1a241fa5243e09c3dc3a243a1990411fff08..3bc8b60e8d3d620f78e4eb9808680fd0684bb247 100644
--- a/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.ts
+++ b/src/app/components/creator/_dialogs/delete-comment/delete-comment.component.ts
@@ -1,6 +1,9 @@
 import { Component, Inject, OnInit } from '@angular/core';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
 import { RoomEditComponent } from '../room-edit/room-edit.component';
+import { DialogConfirmActionButtonType } from '../../../shared/dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
   selector: 'app-delete-comment',
@@ -9,14 +12,52 @@ import { RoomEditComponent } from '../room-edit/room-edit.component';
 })
 export class DeleteCommentComponent implements OnInit {
 
+  /**
+   * The confirm button type of the dialog.
+   */
+  confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Alert;
+
+
   constructor(public dialogRef: MatDialogRef<RoomEditComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) { }
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              private liveAnnouncer: LiveAnnouncer,
+              private translationService: TranslateService ) { }
 
   ngOnInit() {
+    this.announce();
   }
 
   close(type: string): void {
     this.dialogRef.close(type);
   }
 
+  public announce() {
+    const lang: string = this.translationService.currentLang;
+
+    // current live announcer content must be cleared before next read
+    this.liveAnnouncer.clear();
+
+    if (lang === 'de') {
+      this.liveAnnouncer.announce('Willst du die Frage wirklich löschen?');
+    } else {
+      this.liveAnnouncer.announce('Do you really want to delete this question');
+    }
+  }
+
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.close('abort');
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildCommentDeleteActionCallback(): () => void {
+    return () => this.close('delete');
+  }
 }
diff --git a/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.html b/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.html
index 3ad5c141cc6fbab7b3339665070ae8c3bfb67caa..a1dd80b05386de871d3083c2287ec891644ffe61 100644
--- a/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.html
+++ b/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.html
@@ -1,11 +1,10 @@
-<h3>{{ 'room-page.sure' | translate }}</h3>
+<h1>{{ 'room-page.sure' | translate }}</h1>
 <mat-divider></mat-divider>
 <p>{{ 'room-page.really-delete-comments' | translate }}</p>
-<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
-  <button mat-raised-button class="abort" (click)="close('abort')">
-    {{ 'content.abort' | translate }}
-  </button>
-  <button mat-raised-button class="delete" (click)="close('delete')">
-    {{ 'content.delete' | translate }}
-  </button>
-</div>
+<app-dialog-action-buttons
+  buttonsLabelSection="content"
+  confirmButtonLabel="delete"
+  [confirmButtonType]=confirmButtonType
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildCommentsDeleteActionCallback()"
+></app-dialog-action-buttons>
diff --git a/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.scss b/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.scss
index d2bb99f400bb77daaa2daadaece52c800824d6ee..bd912d196c432dfd7f0b985511a22d672c463f32 100644
--- a/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.scss
+++ b/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.scss
@@ -1,4 +1,4 @@
-h3 {
+h1 {
   color: var(--on-surface);
 }
 
diff --git a/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.ts b/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.ts
index 555e26ea80b2b30b3b763d08bec8f09100698ae7..67addcaccdcef167de61848376bbfc4aa91af616 100644
--- a/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.ts
+++ b/src/app/components/creator/_dialogs/delete-comments/delete-comments.component.ts
@@ -1,6 +1,9 @@
 import { Component, Inject, OnInit } from '@angular/core';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
 import { RoomEditComponent } from '../room-edit/room-edit.component';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { DialogConfirmActionButtonType } from '../../../shared/dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
   selector: 'app-delete-comment',
@@ -9,14 +12,49 @@ import { RoomEditComponent } from '../room-edit/room-edit.component';
 })
 export class DeleteCommentsComponent implements OnInit {
 
+  /**
+   * The confirm button type of the dialog.
+   */
+  confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Alert;
+
+
   constructor(public dialogRef: MatDialogRef<RoomEditComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) { }
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              private liveAnnouncer: LiveAnnouncer,
+              private translationService: TranslateService )  { }
+
 
   ngOnInit() {
+    this.announce();
   }
 
-  close(type: string): void {
-    this.dialogRef.close(type);
+
+  public announce() {
+    const lang: string = this.translationService.currentLang;
+
+    // current live announcer content must be cleared before next read
+    this.liveAnnouncer.clear();
+
+    if (lang === 'de') {
+      this.liveAnnouncer.announce('Willst du wirklich alle Fragen dieser Sitzung löschen?');
+    } else {
+      this.liveAnnouncer.announce('Do you really want to delete all questions of this session?');
+    }
   }
 
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.dialogRef.close('abort');
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildCommentsDeleteActionCallback(): () => void {
+    return () => this.dialogRef.close('delete');
+  }
 }
diff --git a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html
index 626d7d52c433f655725d181833914ae3d37b4d8e..48a61c576be275dd229233c7d312280d8ee46f95 100644
--- a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html
+++ b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.html
@@ -1,12 +1,11 @@
-<h2>{{ 'room-page.sure' | translate }}</h2>
+<h1>{{ 'room-page.sure' | translate }}</h1>
 <mat-divider></mat-divider>
-<h3>{{ 'room-page.really-remove-moderator' | translate }}</h3>
+<p>{{ 'room-page.really-remove-moderator' | translate }}</p>
 <p>{{loginId}}</p>
-<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
-  <button mat-raised-button class="abort" (click)="close('abort')">
-    {{ 'content.abort' | translate }}
-  </button>
-  <button mat-raised-button class="delete" (click)="close('delete')">
-    {{ 'content.delete' | translate }}
-  </button>
-</div>
+<app-dialog-action-buttons
+  buttonsLabelSection="content"
+  confirmButtonLabel="delete"
+  [confirmButtonType]=confirmButtonType
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildModeratorDeleteActionCallback()"
+></app-dialog-action-buttons>
diff --git a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss
index 9b78e8b53910e8ab6e9b97a76ce45034d61f3f5b..42e4371add8791ec2a37e2b5c823d2c51fdd8f40 100644
--- a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss
+++ b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.scss
@@ -1,15 +1,13 @@
-h2 {
+h1 {
   color: var(--on-surface);
 }
 
-h3 {
+h2 {
   color: var(--on-surface);
 }
 
 p {
   color: var(--on-surface);
-  font-weight: bold;
-  text-align: center;
 }
 
 .delete {
diff --git a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts
index 3cabf69178af779a6b947de04f1d6167e8296016..3cf33799ab2ec7da5d9ee38e7e4957fb815cfba8 100644
--- a/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts
+++ b/src/app/components/creator/_dialogs/moderator-delete/moderator-delete.component.ts
@@ -1,6 +1,9 @@
 import { Component, Inject, OnInit } from '@angular/core';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
 import { ModeratorsComponent } from '../moderators/moderators.component';
+import { DialogConfirmActionButtonType } from '../../../shared/dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
   selector: 'app-moderator-delete',
@@ -11,14 +14,55 @@ export class ModeratorDeleteComponent implements OnInit {
 
   loginId: string;
 
+
+  /**
+   * The confirm button type of the dialog.
+   */
+  confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Alert;
+
+
   constructor(public dialogRef: MatDialogRef<ModeratorsComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) { }
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              private liveAnnouncer: LiveAnnouncer,
+              private translationService: TranslateService ) { }
 
   ngOnInit() {
+    this.announce();
+
   }
 
+
+  public announce() {
+    const lang: string = this.translationService.currentLang;
+
+    // current live announcer content must be cleared before next read
+    this.liveAnnouncer.clear();
+
+    if (lang === 'de') {
+      this.liveAnnouncer.announce('Willst du wirklich den Moderator ' + this.loginId + ' löschen?');
+    } else {
+      this.liveAnnouncer.announce('Do you really want to remove the moderator? ' + this.loginId);
+    }
+  }
+
+
   close(type: string): void {
     this.dialogRef.close(type);
   }
 
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.close('abort');
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildModeratorDeleteActionCallback(): () => void {
+    return () => this.close('delete');
+  }
 }
diff --git a/src/app/components/creator/_dialogs/moderators/moderators.component.html b/src/app/components/creator/_dialogs/moderators/moderators.component.html
index 064ad26315c7c4142e9ab8a836ab976a9e29b16c..ba3c76d733aec5593f44e6f2127d89520c0f22ac 100644
--- a/src/app/components/creator/_dialogs/moderators/moderators.component.html
+++ b/src/app/components/creator/_dialogs/moderators/moderators.component.html
@@ -1,30 +1,42 @@
 <div mat-dialog-content>
-  <h2>{{'room-page.moderators' | translate }}</h2>
+  <h1>{{'room-page.moderators' | translate }}</h1>
   <mat-divider></mat-divider>
   <div fxLayout="row">
     <mat-form-field class="input-block">
-      <input matInput type="email" #loginId placeholder="{{ 'room-page.moderator-email' | translate }}"
+      <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+             matInput type="email" #loginId aria-labelledby="moderator-email"
              [formControl]="usernameFormControl" name="username"/>
+      <mat-placeholder class="placeholder">{{ 'room-page.moderator-email' | translate }}</mat-placeholder>
       <mat-error *ngIf="usernameFormControl.hasError('email')">
         {{ 'room-page.email-error' | translate }}
       </mat-error>
     </mat-form-field>
     <span class="fill-remaining-space"></span>
-    <button mat-icon-button class="add" (click)="addModerator(loginId.value); loginId.value = ''">
+    <button mat-icon-button class="add" (click)="addModerator(loginId.value); loginId.value = ''" aria-labelledby="add-moderator" >
       <mat-icon class="add-icon">add_circle</mat-icon>
     </button>
     <span class="fill-remaining-space"></span>
   </div>
-  <h3 *ngIf="moderators.length === 0">{{ 'room-page.no-moderators' | translate }}</h3>
+  <h2 *ngIf="moderators.length === 0">{{ 'room-page.no-moderators' | translate }}</h2>
   <div *ngIf="moderators.length > 0">
     <div fxLayout="row" *ngFor="let moderator of moderators; index as i">
-      <h3>
+      <h2>
         {{i+1}}. {{moderator.loginId}}
-      </h3>
+      </h2>
       <span class="fill-remaining-space"></span>
-      <button mat-icon-button class="close" (click)="openDeleteRoomDialog(moderator)">
+      <button mat-icon-button class="close" (click)="openDeleteRoomDialog(moderator)" aria-labelledby="delete-moderator">
         <mat-icon class="close-icon">close</mat-icon>
       </button>
     </div>
   </div>
+  <app-dialog-action-buttons
+    buttonsLabelSection="content"
+    [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  ></app-dialog-action-buttons>
+</div>
+
+<div class="visually-hidden">
+  <div id ="moderator-email">{{'room-page.a11y-moderator-email' | translate}}</div>
+  <div id ="add-moderator">{{'room-page.a11y-add-moderator' | translate}}</div>
+  <div id ="delete-moderator">{{'room-page.a11y-delete-moderator' | translate}}</div>
 </div>
diff --git a/src/app/components/creator/_dialogs/moderators/moderators.component.scss b/src/app/components/creator/_dialogs/moderators/moderators.component.scss
index ef9e2785cb6de13e94b24a2754f0417267752964..5cb94486bd0d8be7d609a467d30acfb1b5f24145 100644
--- a/src/app/components/creator/_dialogs/moderators/moderators.component.scss
+++ b/src/app/components/creator/_dialogs/moderators/moderators.component.scss
@@ -1,9 +1,9 @@
-h2 {
+h1 {
   margin-bottom: 10px;
   color: var(--on-surface);
 }
 
-h3 {
+h2 {
   margin: 10px 0 10px 0;
   color: var(--on-surface);
   font-size: medium;
diff --git a/src/app/components/creator/_dialogs/moderators/moderators.component.ts b/src/app/components/creator/_dialogs/moderators/moderators.component.ts
index 8791b12610e689b05be9ea2f58d83f0342faf848..71baa61715c3d03fc4c81699308212bc72387c3e 100644
--- a/src/app/components/creator/_dialogs/moderators/moderators.component.ts
+++ b/src/app/components/creator/_dialogs/moderators/moderators.component.ts
@@ -8,6 +8,7 @@ import { LanguageService } from '../../../../services/util/language.service';
 import { Moderator } from '../../../../models/moderator';
 import { ModeratorDeleteComponent } from '../moderator-delete/moderator-delete.component';
 import { FormControl, Validators } from '@angular/forms';
+import { EventService } from '../../../../services/util/event.service';
 
 @Component({
   selector: 'app-moderators',
@@ -28,7 +29,8 @@ export class ModeratorsComponent implements OnInit {
     public translationService: TranslateService,
     protected moderatorService: ModeratorService,
     protected langService: LanguageService,
-    @Inject(MAT_DIALOG_DATA) public data: any) {
+    @Inject(MAT_DIALOG_DATA) public data: any,
+    public eventService: EventService) {
       langService.langEmitter.subscribe(lang => translationService.use(lang));
   }
 
@@ -86,4 +88,12 @@ export class ModeratorsComponent implements OnInit {
     });
     this.moderators.splice(index, 1);
   }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.dialogRef.close();
+  }
 }
diff --git a/src/app/components/creator/_dialogs/room-delete/room-delete.component.html b/src/app/components/creator/_dialogs/room-delete/room-delete.component.html
index f4ea308d43236ff25c6bc821e05477641f8b81fb..25960dfea3690b32cc5434c98c4147701d45391b 100644
--- a/src/app/components/creator/_dialogs/room-delete/room-delete.component.html
+++ b/src/app/components/creator/_dialogs/room-delete/room-delete.component.html
@@ -1,11 +1,10 @@
-<h3>{{ 'room-page.sure' | translate }}</h3>
+<h1>{{ 'room-page.sure' | translate }}</h1>
 <mat-divider></mat-divider>
 <p>{{ 'room-page.reallySession' | translate}}<strong>{{room.name}}</strong>{{ 'room-page.really2' | translate}}</p>
-<div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
-  <button mat-raised-button class="abort" (click)="onNoClick()">
-    {{ 'room-page.abort' | translate }}
-  </button>
-  <button mat-raised-button class="delete" (click)="dialogRef.close('delete')">
-    {{ 'room-page.delete-room' | translate }}
-  </button>
-</div>
+<app-dialog-action-buttons
+  buttonsLabelSection="room-page"
+  confirmButtonLabel="delete-room"
+  [confirmButtonType]=confirmButtonType
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildRoomDeleteActionCallback()"
+></app-dialog-action-buttons>
diff --git a/src/app/components/creator/_dialogs/room-delete/room-delete.component.scss b/src/app/components/creator/_dialogs/room-delete/room-delete.component.scss
index ef5573e7dd77a52ac9c9f36bb75cfb4a5d5d9711..7f273426375338f7c3a2ccd3627fbf0750e478af 100644
--- a/src/app/components/creator/_dialogs/room-delete/room-delete.component.scss
+++ b/src/app/components/creator/_dialogs/room-delete/room-delete.component.scss
@@ -1,4 +1,4 @@
-h3 {
+h1 {
   color: var(--on-surface);
 }
 
diff --git a/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts b/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts
index 347e0d56f05efd4749371de98449cffc24f97567..1ae5ad4843f28aa156d059faf355127dd9b0e708 100644
--- a/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts
+++ b/src/app/components/creator/_dialogs/room-delete/room-delete.component.ts
@@ -2,6 +2,9 @@ import { Component, Inject, OnInit } from '@angular/core';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
 import { Room } from '../../../../models/room';
 import { RoomEditComponent } from '../room-edit/room-edit.component';
+import { DialogConfirmActionButtonType } from '../../../shared/dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
   selector: 'app-room-delete',
@@ -11,14 +14,59 @@ import { RoomEditComponent } from '../room-edit/room-edit.component';
 export class RoomDeleteComponent implements OnInit {
   room: Room;
 
+
+  /**
+   * The confirm button type of the dialog.
+   */
+  confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Alert;
+
+
   constructor(public dialogRef: MatDialogRef<RoomEditComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) {
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              private liveAnnouncer: LiveAnnouncer,
+              private translationService: TranslateService ) { }
+
+
+  ngOnInit() {
+    this.announce();
   }
 
-  onNoClick(): void {
+
+  public announce() {
+    const lang: string = this.translationService.currentLang;
+
+    // current live announcer content must be cleared before next read
+    this.liveAnnouncer.clear();
+
+    if (lang === 'de') {
+      this.liveAnnouncer.announce('Willst du die Sitzung' + this.room.name + 'wirklich löschen? ' +
+        'Diese Aktion kann nicht rückgängig gemacht werden.');
+    } else {
+      this.liveAnnouncer.announce('Do you really want to delete session' + this.room.name + '? This action can not be undone.');
+    }
+  }
+
+
+  /**
+   * Closes the dialog on call.
+   */
+  closeDialog(): void {
     this.dialogRef.close();
   }
 
-  ngOnInit() {
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.closeDialog();
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildRoomDeleteActionCallback(): () => void {
+    return () => this.dialogRef.close('delete');
   }
 }
diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.html b/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
index a940d40b1814aa7d4f837adf297f04b5cdab74ec..5899b940c4433585d9e2baf5fe0ee446a03b64b8 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.html
@@ -1,32 +1,46 @@
 <div mat-dialog-content *ngIf="editRoom">
-  <h2>{{'room-page.general' | translate }}</h2>
+  <h1>{{ 'room-page.general' | translate }}</h1>
   <mat-divider></mat-divider>
   <div fxLayout="column">
     <mat-form-field class="input-block">
-      <input [(ngModel)]="editRoom.name" matInput placeholder="{{ 'session.session-name' | translate}}"
-             name="room-name" maxlength="20"/>
-      <mat-hint align="end">{{ editRoom.name.length }} / 20</mat-hint>
+      <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+             [(ngModel)]="editRoom.name" matInput
+             name="room-name" maxlength="20" aria-labelledby="room-name"/>
+      <mat-placeholder class="placeholder">{{ 'session.session-name' | translate }}</mat-placeholder>
+      <mat-hint align="end"><span aria-hidden="true">{{ editRoom.name.length }} / 20</span></mat-hint>
     </mat-form-field>
     <mat-form-field class="input-block">
-              <textarea [(ngModel)]="editRoom.description" matInput matTextareaAutosize
-                        matAutosizeMinRows="2" matAutosizeMaxRows="5" maxlength="255"
-                        placeholder="{{ 'session.description' | translate}}" name="description">
-              </textarea>
-      <mat-hint align="end">{{ editRoom.description ? editRoom.description.length : 0 }} / 255</mat-hint>
+      <textarea
+        (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+        [(ngModel)]="editRoom.description"
+        matInput
+        matTextareaAutosize
+        matAutosizeMinRows="2"
+        matAutosizeMaxRows="5"
+        maxlength="255"
+        name="description"
+        aria-labelledby="description"
+      ></textarea>
+      <mat-placeholder class="placeholder">{{ 'session.description' | translate }}</mat-placeholder>
+      <mat-hint align="end"><span aria-hidden="true">{{ editRoom.description ? editRoom.description.length : 0 }} / 255</span></mat-hint>
     </mat-form-field>
     <div fxLayoutAlign="center center">
-      <button mat-raised-button class="delete" (click)="openDeleteRoomDialog()">
+      <button mat-raised-button class="delete" (click)="openDeleteRoomDialog()" aria-labelledby="delete-room">
         <mat-icon>delete</mat-icon>
         {{ 'room-page.delete-room' | translate }}</button>
     </div>
   </div>
-  <mat-divider></mat-divider>
-  <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px" class="submit">
-    <button mat-raised-button class="abort" (click)="dialogRef.close('abort')">
-      {{ 'room-page.abort' | translate }}
-    </button>
-    <button mat-raised-button class="update" (click)="dialogRef.close('update')">
-      {{ 'room-page.update' | translate }}
-    </button>
-  </div>
+  <app-dialog-action-buttons
+    buttonsLabelSection="room-page"
+    confirmButtonLabel="update"
+    [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+    [confirmButtonClickAction]="buildSaveActionCallback()"
+  ></app-dialog-action-buttons>
+</div>
+
+<div class="visually-hidden">
+  <div id="room-name">{{ 'room-page.a11y-room-name' | translate }}</div>
+  <div id="room-edit-description">{{ 'session.a11y-description' | translate }}</div>
+  <div id="delete-room">{{ 'room-page.a11y-delete-room' | translate }}</div>
 </div>
+
diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss b/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss
index ef90a45d14ff8ec4cd69719618bab6a677c31073..528856e13e5ff3bfb0882ba1900b89c4a247dba7 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.scss
@@ -24,12 +24,12 @@ mat-icon {
   margin-right: 10px;
 }
 
-h2 {
+h1 {
   margin: 10px 0 10px 0;
   color: var(--on-surface);
 }
 
-h3 {
+h2 {
   color: var(--on-surface);
 }
 
diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts b/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
index 1f5cf486d18345d82f3f91c75827663dd27c7e07..7031a5debb77bc426e6c06442854928acf24bfc0 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
@@ -51,8 +51,32 @@ export class RoomEditComponent implements OnInit {
     this.roomService.deleteRoom(room.id).subscribe(result => {
       const event = new RoomDeleted(room.id);
       this.eventService.broadcast(event.type, event.payload);
-      this.dialogRef.close('delete');
+      this.closeDialog('delete');
       this.router.navigate([`/user`]);
     });
   }
+
+
+  /**
+   * Closes the dialog on call.
+   */
+  closeDialog(type: string): void {
+    this.dialogRef.close(type);
+  }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.closeDialog('abort');
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildSaveActionCallback(): () => void {
+    return () => this.closeDialog('update');
+  }
 }
diff --git a/src/app/components/creator/content-choice-creator/content-choice-creator.component.html b/src/app/components/creator/content-choice-creator/content-choice-creator.component.html
index 3bb018132f1b6b2d9ee67dba2b7821acc0a664a1..60c83e0ac651d6e0510589a1a7f6dd4d76ecd1a4 100644
--- a/src/app/components/creator/content-choice-creator/content-choice-creator.component.html
+++ b/src/app/components/creator/content-choice-creator/content-choice-creator.component.html
@@ -41,7 +41,8 @@
 
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px">
     <mat-form-field class="input-block">
-      <input matInput #answerLabel [(ngModel)]="newAnswerOptionLabel" placeholder="{{ 'content.answer' | translate }}" name="answer">
+      <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+             matInput #answerLabel [(ngModel)]="newAnswerOptionLabel" placeholder="{{ 'content.answer' | translate }}" name="answer">
     </mat-form-field>
     <button *ngIf="singleChoice" mat-icon-button class="addButton" (click)="addAnswer($event); answerLabel.value = '';">
       <mat-icon class="addIcon">add_circle</mat-icon>
diff --git a/src/app/components/creator/content-choice-creator/content-choice-creator.component.ts b/src/app/components/creator/content-choice-creator/content-choice-creator.component.ts
index 53a144abdf1e1c788b92cfc718beb2bcbf49460e..fadb2c00709ac8d00144b5ec659f9a7a1d1436c2 100644
--- a/src/app/components/creator/content-choice-creator/content-choice-creator.component.ts
+++ b/src/app/components/creator/content-choice-creator/content-choice-creator.component.ts
@@ -7,6 +7,7 @@ import { MatDialog } from '@angular/material';
 import { AnswerEditComponent } from '../_dialogs/answer-edit/answer-edit.component';
 import { ContentType } from '../../../models/content-type.enum';
 import { TranslateService } from '@ngx-translate/core';
+import { EventService } from '../../../services/util/event.service';
 
 export class DisplayAnswer {
   answerOption: AnswerOption;
@@ -61,7 +62,8 @@ export class ContentChoiceCreatorComponent implements OnInit {
   constructor(private contentService: ContentService,
               private notificationService: NotificationService,
               public dialog: MatDialog,
-              private translationService: TranslateService) {
+              private translationService: TranslateService,
+              public eventService: EventService) {
   }
 
   ngOnInit() {
diff --git a/src/app/components/creator/content-create-page/content-create-page.component.ts b/src/app/components/creator/content-create-page/content-create-page.component.ts
index 2a7f4ab492505be9bdd8f1c9a979b07f782c70f7..aeedad4cccf27cab4a9cca2aea8d574f58f55e74 100644
--- a/src/app/components/creator/content-create-page/content-create-page.component.ts
+++ b/src/app/components/creator/content-create-page/content-create-page.component.ts
@@ -32,7 +32,6 @@ export class ContentCreatePageComponent implements OnInit {
 
   getGroups(id: string): void {
     this.roomService.getRoomByShortId(id).subscribe(room => {
-      this.contentGroups = room.contentGroups;
     });
   }
 }
diff --git a/src/app/components/creator/content-creator/content-creator.component.html b/src/app/components/creator/content-creator/content-creator.component.html
index 56fdf8efb5fe229fb1a4af4e43d890f1fb118476..267eac13c89e31432c1728c1f96f1dced8cc6f57 100644
--- a/src/app/components/creator/content-creator/content-creator.component.html
+++ b/src/app/components/creator/content-creator/content-creator.component.html
@@ -1,14 +1,17 @@
 <form>
 <mat-form-field class="input-block">
-  <input matInput #subject [(ngModel)]="content.subject" placeholder="{{'content.subject' | translate}}" name="subject"
+  <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+         matInput #subject [(ngModel)]="content.subject" placeholder="{{'content.subject' | translate}}" name="subject"
   maxlength="40">
 </mat-form-field>
 <mat-form-field class="input-block">
-    <textarea matInput #body [(ngModel)]="content.body" placeholder="{{'content.body' | translate}}" name="body"
+    <textarea (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+              matInput #body [(ngModel)]="content.body" placeholder="{{'content.body' | translate}}" name="body"
               matTextareaAutosize matAutosizeMinRows="3" matAutosizeMaxRows="8" maxlength="255"></textarea>
 </mat-form-field>
 <mat-form-field>
-  <input matInput #group [formControl]="myControl" [matAutocomplete]="auto"
+  <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+         matInput #group [formControl]="myControl" [matAutocomplete]="auto"
          placeholder="{{'content.collection' | translate}}" [(ngModel)]="lastCollection" />
   <mat-autocomplete #auto="matAutocomplete">
     <mat-option *ngFor="let collection of contentGroups" [value]="collection.name">
diff --git a/src/app/components/creator/content-creator/content-creator.component.ts b/src/app/components/creator/content-creator/content-creator.component.ts
index c3915f07b0c8521a9372153f856172b4394f2f0e..8d082d3ac4ce94a49009cdae629d1672855b1fac 100644
--- a/src/app/components/creator/content-creator/content-creator.component.ts
+++ b/src/app/components/creator/content-creator/content-creator.component.ts
@@ -3,6 +3,7 @@ import { ContentText } from '../../../models/content-text';
 import { FormControl } from '@angular/forms';
 import { Room } from '../../../models/room';
 import { TranslateService } from '@ngx-translate/core';
+import { EventService } from '../../../services/util/event.service';
 
 @Component({
   selector: 'app-content-creator',
@@ -31,7 +32,8 @@ export class ContentCreatorComponent implements OnInit {
 
   editDialogMode = false;
 
-  constructor(private translateService: TranslateService) {
+  constructor(private translateService: TranslateService,
+              public eventService: EventService) {
   }
 
   ngOnInit() {
diff --git a/src/app/components/creator/creator.module.ts b/src/app/components/creator/creator.module.ts
index b0b9f948ec8863c0a6d21b2cba5e46e67e33fd60..049446dea46f00237b10a7f811c3b77c2431542c 100644
--- a/src/app/components/creator/creator.module.ts
+++ b/src/app/components/creator/creator.module.ts
@@ -62,8 +62,9 @@ import { DeleteCommentsComponent } from './_dialogs/delete-comments/delete-comme
     CommentSettingsComponent,
     ModeratorDeleteComponent,
     DeleteCommentsComponent,
-    DeleteCommentComponent
+    DeleteCommentComponent,
   ],
+  exports: [],
   entryComponents: [
     RoomDeleteComponent,
     RoomEditComponent,
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.html b/src/app/components/creator/room-creator-page/room-creator-page.component.html
index e1c9a3e5357cd5947d9a2666b8fc11d931fd71bb..a3a5c1f879fdec3dd87a9c4db6deece390007565 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.html
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.html
@@ -7,7 +7,7 @@
         <span class="fill-remaining-space"></span>
         <mat-card-header fxLayoutAlign="center" fxLayout="row">
           <mat-card-title fxLayoutAlign="center">
-            <h2>{{ room.name }}</h2>
+            <h1>{{ room.name }}</h1>
           </mat-card-title>
           <mat-card-subtitle fxLayoutAlign="center">
             <mat-icon *ngIf="moderationEnabled" class="gavel">
@@ -16,28 +16,28 @@
             <span class="room-short-id">
               {{ 'room-page.session-id' | translate}}: {{ room.shortId.slice(0, 4) }} {{  room.shortId.slice(4, 8) }}
             </span>
-            <button id="copy" mat-icon-button (click)="copyShortId()">
-              <mat-icon class="copy" matTooltip="{{ 'room-page.copy-session-id' | translate}}">cloud_download</mat-icon>
+            <button id="copy"  mat-icon-button (click)="copyShortId()" aria-labelledby= "cloud_download">
+              <mat-icon class="copy" matTooltip="{{ 'room-page.copy-session-id' | translate}}">save</mat-icon>
             </button>
           </mat-card-subtitle>
         </mat-card-header>
         <span class="fill-remaining-space"></span>
         <mat-menu #settingsMenu="matMenu" [overlapTrigger]="false" xPosition="before">
-          <button mat-menu-item (click)="showSettingsDialog()">
+          <button mat-menu-item (click)="showSettingsDialog()" aria-labelledby= "edit">
             <mat-icon>edit</mat-icon>
             {{ 'room-page.general' | translate}}
           </button>
-          <button mat-menu-item (click)="showCommentsDialog()">
+          <button mat-menu-item (click)="showCommentsDialog()" aria-labelledby= "insert_comment">
             <mat-icon>insert_comment</mat-icon>
             {{ 'room-page.comments' | translate}}
           </button>
-          <button mat-menu-item (click)="showModeratorsDialog()">
-            <mat-icon>person</mat-icon>
+          <button mat-menu-item (click)="showModeratorsDialog()" aria-labelledby= "person">
+            <mat-icon>gavel</mat-icon>
             {{ 'room-page.moderators' | translate}}
           </button>
         </mat-menu>
-        <div fxLayout="column">
-          <button mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu">
+        <button  id="settings-menu"
+                 mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu" aria-labelledby="settings">
             <mat-icon class="corner-icon" matTooltip="{{ 'room-page.session-settings' | translate}}">settings</mat-icon>
           </button>
           <button mat-icon-button class="corner-icons" routerLink="/creator/room/{{ room.shortId }}/statistics">
@@ -47,28 +47,30 @@
         </div>
       </div>
       <mat-card-content *ngIf="room.description" fxLayoutAlign="center">
-        <h4>
+        <p>
           {{ room.description.trim() }}
-        </h4>
+        </p>
       </mat-card-content>
-      <div fxLayout="column" fxLayoutAlign="center">
-        <div fxLayout="row">
+      <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
+        <mat-grid-list cols="{{viewModuleCount}}" rowHeight="1:1" *ngIf="viewModuleCount > 1">
         <span class="fill-remaining-space"></span>
         <mat-grid-list cols="{{viewModuleCount}}" rowHeight="2:1">
           <mat-grid-tile>
-            <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/comments">
+            <button id="question_answer-button" mat-icon-button [disableRipple]="true"
+                    routerLink="/creator/room/{{ room.shortId }}/comments" aria-labelledby="question_answer">
               <mat-icon matBadge="{{commentCounter}}" class="main-icon"
-                        [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer
-              </mat-icon>
+                        [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer</mat-icon>
+              <h2>{{ 'room-page.comments' | translate}}</h2>
               <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.comments' | translate}}</h3>
             </button>
           </mat-grid-tile>
           <mat-grid-tile *ngIf="moderationEnabled">
-            <button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/moderator/comments">
+            <button id="gavel-button" mat-icon-button [disableRipple]="true"
+                    routerLink="/moderator/room/{{ room.shortId }}/moderator/comments" aria-labelledby="gavel">
               <mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon"
                         [ngClass]="{'desktop' : deviceType === 'desktop'}">gavel
               </mat-icon>
-              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.moderating-stream' | translate}}</h3>
+              <h2>{{ 'room-page.moderating-stream' | translate}}</h2>
             </button>
           </mat-grid-tile>
         </mat-grid-list>
@@ -79,26 +81,42 @@
         <mat-grid-list cols="2" rowHeight="2:1" class="second">
           <mat-grid-tile>
             <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/feedback-barometer">
-              <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down
-              </mat-icon>
-              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3>
-            </button>
-          </mat-grid-tile>
-          <mat-grid-tile>
-            <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/create-content">
-              <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">note_add</mat-icon>
-              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3>
-            </button>
-          </mat-grid-tile>
-        </mat-grid-list>
+            <mat-icon class="smallerIcon" [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down
+            </mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3>
+          </button>
+        </mat-grid-tile> -->
+      </mat-grid-list>
+      <mat-grid-tile>
+          <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/create-content">
+            <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">note_add</mat-icon>
+            <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3>
+          </button>
+          <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/statistics">
+            <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">insert_chart</mat-icon>
+           <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.answer-statistics' | translate}}</h3>
+          </button>
+        </mat-grid-tile>
+      </mat-grid-list>
         <span class="fill-remaining-space"></span>
       </div>
       </div>
-
       <app-content-groups *ngIf="room && room.contentGroups" [contentGroups]="room.contentGroups"></app-content-groups>
 
     </mat-card>
     <div *ngIf="!isLoading && !room">{{ 'room-page.room-not-found' | translate }}</div>
   </div>
+  <button id="live_announcer-button" tabIndex="-1" (click)="announce()" class="visually-hidden">{{ 'room-page.live-announcer' | translate }}</button>
+</div>
+
+<div class="visually-hidden">
+  <div id ="cloud_download">{{'room-page.a11y-cloud_download' | translate}}</div>
+  <div id ="question_answer">{{'room-page.a11y-question_answer' | translate}}</div>
+  <div id ="gavel">{{'room-page.a11y-gavel' | translate}}</div>
+  <div id ="settings">{{'room-page.a11y-settings' | translate}}</div>
+  <div id ="edit">{{'room-page.a11y-edit' | translate}}</div>
+  <div id ="insert_comment">{{'room-page.a11y-insert_comment' | translate}}</div>
+  <div id ="person">{{'room-page.a11y-person' | translate}}</div>
 </div>
 
+
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.html.orig b/src/app/components/creator/room-creator-page/room-creator-page.component.html.orig
new file mode 100644
index 0000000000000000000000000000000000000000..50741278c18b4348719e436a2720159d2c4bf375
--- /dev/null
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.html.orig
@@ -0,0 +1,155 @@
+<div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill>
+  <div fxLayout="row" fxLayoutAlign="center">
+    <mat-progress-spinner *ngIf="isLoading" color="primary" mode="indeterminate"></mat-progress-spinner>
+    <mat-card *ngIf="room">
+      <div fxLayout="row">
+        <span class="corner-icons"></span>
+        <span class="fill-remaining-space"></span>
+        <mat-card-header fxLayoutAlign="center" fxLayout="row">
+          <mat-card-title fxLayoutAlign="center">
+            <h1>{{ room.name }}</h1>
+          </mat-card-title>
+          <mat-card-subtitle fxLayoutAlign="center">
+            <mat-icon *ngIf="moderationEnabled" class="gavel">
+              gavel
+            </mat-icon>
+            <span class="room-short-id">
+              {{ 'room-page.session-id' | translate}}: {{ room.shortId.slice(0, 4) }} {{  room.shortId.slice(4, 8) }}
+            </span>
+            <button id="copy"  mat-icon-button (click)="copyShortId()" aria-labelledby= "cloud_download">
+              <mat-icon class="copy" matTooltip="{{ 'room-page.copy-session-id' | translate}}">save</mat-icon>
+            </button>
+          </mat-card-subtitle>
+        </mat-card-header>
+        <span class="fill-remaining-space"></span>
+        <mat-menu #settingsMenu="matMenu" [overlapTrigger]="false" xPosition="before">
+          <button mat-menu-item (click)="showSettingsDialog()" aria-labelledby= "edit">
+            <mat-icon>edit</mat-icon>
+            {{ 'room-page.general' | translate}}
+          </button>
+          <button mat-menu-item (click)="showCommentsDialog()" aria-labelledby= "insert_comment">
+            <mat-icon>insert_comment</mat-icon>
+            {{ 'room-page.comments' | translate}}
+          </button>
+          <button mat-menu-item (click)="showModeratorsDialog()" aria-labelledby= "person">
+            <mat-icon>gavel</mat-icon>
+            {{ 'room-page.moderators' | translate}}
+          </button>
+        </mat-menu>
+<<<<<<< HEAD
+        <div fxLayout="column">
+          <button mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu">
+            <mat-icon class="corner-icon" matTooltip="{{ 'room-page.session-settings' | translate}}">settings</mat-icon>
+          </button>
+          <button mat-icon-button class="corner-icons" routerLink="/creator/room/{{ room.shortId }}/statistics">
+            <mat-icon class="corner-icon" matTooltip="{{ 'room-page.answer-statistics' | translate}}">insert_chart
+            </mat-icon>
+          </button>
+        </div>
+=======
+        <button  id="settings-menu"
+                 mat-icon-button class="corner-icons" [matMenuTriggerFor]="settingsMenu" aria-labelledby="settings">
+          <mat-icon class="corner-icon" matTooltip="{{ 'room-page.session-settings' | translate}}">settings</mat-icon>
+        </button>
+>>>>>>> frag/master
+      </div>
+      <mat-card-content *ngIf="room.description" fxLayoutAlign="center">
+        <p>
+          {{ room.description.trim() }}
+        </p>
+      </mat-card-content>
+<<<<<<< HEAD
+      <div fxLayout="column" fxLayoutAlign="center">
+        <div fxLayout="row">
+        <span class="fill-remaining-space"></span>
+        <mat-grid-list cols="{{viewModuleCount}}" rowHeight="2:1">
+          <mat-grid-tile>
+            <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/comments">
+              <mat-icon matBadge="{{commentCounter}}" class="main-icon"
+                        [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer
+              </mat-icon>
+              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.comments' | translate}}</h3>
+            </button>
+          </mat-grid-tile>
+          <mat-grid-tile *ngIf="moderationEnabled">
+            <button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/moderator/comments">
+              <mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon"
+                        [ngClass]="{'desktop' : deviceType === 'desktop'}">gavel
+              </mat-icon>
+              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.moderating-stream' | translate}}</h3>
+            </button>
+          </mat-grid-tile>
+        </mat-grid-list>
+        <span class="fill-remaining-space"></span>
+      </div>
+      <div fxLayout="row">
+        <span class="fill-remaining-space"></span>
+        <mat-grid-list cols="2" rowHeight="2:1" class="second">
+          <mat-grid-tile>
+            <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/feedback-barometer">
+              <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down
+              </mat-icon>
+              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.live-feedback' | translate}}</h3>
+            </button>
+          </mat-grid-tile>
+          <mat-grid-tile>
+            <button mat-icon-button routerLink="/creator/room/{{ room.shortId }}/create-content">
+              <mat-icon class="main-icon" [ngClass]="{'desktop' : deviceType === 'desktop'}">note_add</mat-icon>
+              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.create-content' | translate}}</h3>
+            </button>
+          </mat-grid-tile>
+        </mat-grid-list>
+        <span class="fill-remaining-space"></span>
+      </div>
+      </div>
+
+      <app-content-groups *ngIf="room && room.contentGroups" [contentGroups]="room.contentGroups"></app-content-groups>
+
+=======
+      <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
+        <mat-grid-list cols="{{viewModuleCount}}" rowHeight="1:1" *ngIf="viewModuleCount > 1">
+          <mat-grid-tile>
+            <button id="question_answer-button" mat-icon-button [disableRipple]="true"
+                    routerLink="/creator/room/{{ room.shortId }}/comments" aria-labelledby="question_answer">
+              <mat-icon matBadge="{{commentCounter}}" class="main-icon"
+                        [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer</mat-icon>
+              <h2>{{ 'room-page.comments' | translate}}</h2>
+            </button>
+          </mat-grid-tile>
+          <mat-grid-tile *ngIf="moderationEnabled">
+            <button id="gavel-button" mat-icon-button [disableRipple]="true"
+                    routerLink="/moderator/room/{{ room.shortId }}/moderator/comments" aria-labelledby="gavel">
+              <mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon"
+                        [ngClass]="{'desktop' : deviceType === 'desktop'}">gavel
+              </mat-icon>
+              <h2>{{ 'room-page.moderating-stream' | translate}}</h2>
+            </button>
+          </mat-grid-tile>
+        </mat-grid-list>
+        <div fxLayout="row" fxLayoutAlign="center" *ngIf="viewModuleCount <= 1" class="question-button-div">
+          <button id="question_answer-button2" mat-icon-button [disableRipple]="true"
+                  routerLink="/creator/room/{{ room.shortId }}/comments" aria-labelledby="question_answer">
+            <mat-icon matBadge="{{commentCounter}}" class="main-icon"
+                      [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer</mat-icon>
+            <h2>{{ 'room-page.comments' | translate}}</h2>
+          </button>
+        </div>
+      </div>
+>>>>>>> frag/master
+    </mat-card>
+    <div *ngIf="!isLoading && !room">{{ 'room-page.room-not-found' | translate }}</div>
+  </div>
+  <button id="live_announcer-button" tabIndex="-1" (click)="announce()" class="visually-hidden">{{ 'room-page.live-announcer' | translate }}</button>
+</div>
+
+<div class="visually-hidden">
+  <div id ="cloud_download">{{'room-page.a11y-cloud_download' | translate}}</div>
+  <div id ="question_answer">{{'room-page.a11y-question_answer' | translate}}</div>
+  <div id ="gavel">{{'room-page.a11y-gavel' | translate}}</div>
+  <div id ="settings">{{'room-page.a11y-settings' | translate}}</div>
+  <div id ="edit">{{'room-page.a11y-edit' | translate}}</div>
+  <div id ="insert_comment">{{'room-page.a11y-insert_comment' | translate}}</div>
+  <div id ="person">{{'room-page.a11y-person' | translate}}</div>
+</div>
+
+
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.scss b/src/app/components/creator/room-creator-page/room-creator-page.component.scss
index 26baee49f30a6c91454170e1db894a817c4bae1e..3153ffac52b0750957a0141bf44c63d92bb1c182 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.scss
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.scss
@@ -1,16 +1,19 @@
 @import '../../../../styles';
 
 mat-card {
-  width: 800px;
+  width: 100%;
+  max-width: 800px;
   min-height: 350px;
+  max-height: 600px;
   background-color: var(--surface)!important;
+  margin-top: 7%;
 }
 
 mat-card-content > :first-child {
   margin: 3% 0 3% 0;
 }
 
-#description {
+#room-edit-description {
   margin-bottom: 0;
 }
 
@@ -59,29 +62,26 @@ mat-card-content > :first-child {
 }
 
 mat-grid-list {
-  margin-bottom: 5px !important;
-  width: 90%;
+  margin-top: 0;
+  max-height: 50%!important;
 }
 
 .second {
   margin-bottom: 20px !important;
 }
 
-h2 {
+h1 {
    font-size: large;
    color: var(--on-surface)!important;
  }
 
-h3 {
+h2 {
   font-size: larger;
   color: var(--on-surface)!important;
-  margin: 5% 5% 0 0;
 }
 
-h4 {
-  font-size: medium;
+p {
   color: var(--on-surface)!important;
-  padding: 0 1% 0 1%;
 }
 
 mat-card-header {
@@ -125,3 +125,7 @@ mat-expansion-panel {
   margin: 5% 2% 0 0;
   color: var(--on-surface);
 }
+
+.question-button-div {
+  margin: 10% 0 10% 0;
+}
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.scss.orig b/src/app/components/creator/room-creator-page/room-creator-page.component.scss.orig
new file mode 100644
index 0000000000000000000000000000000000000000..69a8c8efa487a0fb8b7e38aeaf5144489c682c32
--- /dev/null
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.scss.orig
@@ -0,0 +1,136 @@
+@import '../../../../styles';
+
+mat-card {
+  width: 100%;
+  max-width: 800px;
+  min-height: 350px;
+  max-height: 600px;
+  background-color: var(--surface)!important;
+  margin-top: 7%;
+}
+
+mat-card-content > :first-child {
+  margin: 3% 0 3% 0;
+}
+
+#room-edit-description {
+  margin-bottom: 0;
+}
+
+.mat-icon-button {
+  width: 60%;
+  height: 75%;
+  color: var(--primary)!important;
+  transition: all 0.3s;
+  &:hover {
+    transform: scale(1.2)
+  }
+}
+
+.desktop {
+  font-size: 80px;
+  height: 80px;
+  width: 80px;
+  margin-bottom: 5%;
+}
+
+.corner-icons {
+  width: 40px;
+  height: 40px;
+  margin-bottom: 5%;
+}
+
+.corner-icon {
+  font-size: 40px;
+  height: 40px;
+  width: 40px;
+  line-height: 100%;
+}
+
+.main-icon{
+  font-size: 60px;
+  height: 60px;
+  width: 60px;
+  line-height: 100%!important;
+}
+
+.room-short-id {
+  font-size: larger;
+  font-weight: bold;
+  color: var(--on-surface)!important;
+  margin: 5% 5% 0 0;
+}
+
+mat-grid-list {
+<<<<<<< HEAD
+  margin-bottom: 5px !important;
+  width: 90%;
+=======
+  margin-top: 0;
+  max-height: 50%!important;
+>>>>>>> frag/master
+}
+
+.second {
+  margin-bottom: 20px !important;
+}
+
+h1 {
+   font-size: large;
+   color: var(--on-surface)!important;
+ }
+
+h2 {
+  font-size: larger;
+  color: var(--on-surface)!important;
+}
+
+p {
+  color: var(--on-surface)!important;
+}
+
+mat-card-header {
+  min-height: 80px;
+  height: 10%!important;
+  margin-bottom: 10%!important;
+}
+
+mat-card-title {
+  height: 40%;
+  min-width: 200px;
+}
+
+mat-card-subtitle {
+  height: 30%;
+}
+
+mat-grid-tile {
+  height: 100%!important;
+  padding-top: 2%!important;
+}
+
+mat-expansion-panel {
+  background-color: var(--surface)!important;
+  min-width: 200px;
+  hyphens: auto;
+}
+
+#copy {
+  width: 24px;
+  height: 24px;
+}
+
+.copy {
+  font-size: 24px;
+  color: var(--secondary);
+  line-height: 100%;
+}
+
+.gavel {
+  margin: 5% 2% 0 0;
+  color: var(--on-surface);
+}
+
+.question-button-div {
+  margin: 10% 0 10% 0;
+}
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.ts b/src/app/components/creator/room-creator-page/room-creator-page.component.ts
index 4b9017a7efd4273e8c0465bdb6b4215f9d39e89f..fa6f258398399ad74357c924dd170665b3441f49 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.ts
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, Renderer2, OnDestroy, AfterContentInit } from '@angular/core';
 import { RoomService } from '../../../services/http/room.service';
 import { ActivatedRoute } from '@angular/router';
 import { RoomPageComponent } from '../../shared/room-page/room-page.component';
@@ -15,13 +15,17 @@ import { WsCommentServiceService } from '../../../services/websockets/ws-comment
 import { CommentService } from '../../../services/http/comment.service';
 import { ModeratorsComponent } from '../_dialogs/moderators/moderators.component';
 import { CommentSettingsComponent } from '../_dialogs/comment-settings/comment-settings.component';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { EventService } from '../../../services/util/event.service';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-room-creator-page',
   templateUrl: './room-creator-page.component.html',
   styleUrls: ['./room-creator-page.component.scss']
 })
-export class RoomCreatorPageComponent extends RoomPageComponent implements OnInit {
+export class RoomCreatorPageComponent extends RoomPageComponent implements OnInit, OnDestroy, AfterContentInit {
   room: Room;
   updRoom: Room;
   commentThreshold: number;
@@ -31,6 +35,8 @@ export class RoomCreatorPageComponent extends RoomPageComponent implements OnIni
   moderatorCommentCounter: number;
   urlToCopy = 'https://frag.jetzt/participant/room/';
 
+  listenerFn: () => void;
+
   constructor(protected roomService: RoomService,
               protected notification: NotificationService,
               protected route: ActivatedRoute,
@@ -39,17 +45,61 @@ export class RoomCreatorPageComponent extends RoomPageComponent implements OnIni
               private translateService: TranslateService,
               protected langService: LanguageService,
               protected wsCommentService: WsCommentServiceService,
-              protected commentService: CommentService) {
+              protected commentService: CommentService,
+              private liveAnnouncer: LiveAnnouncer,
+              private _r: Renderer2,
+              public eventService: EventService) {
     super(roomService, route, location, wsCommentService, commentService);
     langService.langEmitter.subscribe(lang => translateService.use(lang));
   }
 
+  ngAfterContentInit(): void {
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 700);
+  }
+
   ngOnInit() {
     window.scroll(0, 0);
     this.translateService.use(localStorage.getItem('currentLang'));
     this.route.params.subscribe(params => {
       this.initializeRoom(params['roomId']);
     });
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit1) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('question_answer-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit3) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('gavel-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit4) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('settings-menu').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit8) === true && this.eventService.focusOnInput === false) {
+        this.liveAnnouncer.clear();
+        this.liveAnnouncer.announce('Aktueller Sitzungs-Name: ' + this.room.name + '. ' +
+                                    'Aktueller Sitzungs-Code: ' + this.room.shortId.slice(0, 8));
+      } else if (
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit9, KeyboardKey.Escape) === true &&
+        this.eventService.focusOnInput === false
+      ) {
+        this.announce();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true && this.eventService.focusOnInput === true) {
+        this.eventService.makeFocusOnInputFalse();
+      }
+    });
+  }
+
+  ngOnDestroy() {
+    this.listenerFn();
+    this.eventService.makeFocusOnInputFalse();
+  }
+
+  public announce() {
+    this.liveAnnouncer.clear();
+    this.liveAnnouncer.announce('Du befindest dich in der von dir erstellten Sitzung. ' +
+      'Drücke die Taste 1 um auf die Fragen-Übersicht zu gelangen, ' +
+      'die Taste 2 um das Sitzungs-Menü zu öffnen, die Taste 3 um in die Moderationsübersicht zu gelangen, ' +
+      'die Taste 4 um Einstellungen an der Sitzung vorzunehmen, ' +
+      'die Taste 8 um den aktuellen Sitzungs-Code zu hören, die Taste 0 um auf den Zurück-Button zu gelangen, ' +
+      'oder die Taste 9 um diese Ansage zu wiederholen.', 'assertive');
   }
 
   afterRoomLoadHook() {
diff --git a/src/app/components/home/_dialogs/cookies/cookies.component.html b/src/app/components/home/_dialogs/cookies/cookies.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..b8e2cb0a78df03cd0b5ab34212c2cec673295f81
--- /dev/null
+++ b/src/app/components/home/_dialogs/cookies/cookies.component.html
@@ -0,0 +1,27 @@
+<div>
+
+  <div class="header-container">
+    <h1 mat-dialog-title tabindex="0" id="cookie-header">{{ 'cookies.title' | translate }}</h1>
+    <button mat-icon-button aria-labelledby="info-label" class="info" (click)="openDataProtection()">
+    <mat-icon class="info-icon">security</mat-icon>
+  </button>
+  </div>
+
+  <mat-divider></mat-divider>
+  <mat-dialog-content tabindex="0">
+    <app-cookies-de *ngIf="currentLang=='de'"></app-cookies-de>
+    <app-cookies-en *ngIf="currentLang=='en'"></app-cookies-en>
+  </mat-dialog-content>
+
+  <app-dialog-action-buttons
+    buttonsLabelSection="cookies"
+    confirmButtonLabel="accept"
+    [confirmButtonType]=confirmButtonType
+    [cancelButtonClickAction]="buildDeclineActionCallback()"
+    [confirmButtonClickAction]="buildConfirmActionCallback()"
+  ></app-dialog-action-buttons>
+
+  <div class="visually-hidden">
+    <div id="info-label">{{'cookies.info-label' | translate }}</div>
+  </div>
+</div>
diff --git a/src/app/components/home/_dialogs/cookies/cookies.component.scss b/src/app/components/home/_dialogs/cookies/cookies.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..867f4ec0a57b7b67517ac3eb99fa676c7cf99ba3
--- /dev/null
+++ b/src/app/components/home/_dialogs/cookies/cookies.component.scss
@@ -0,0 +1,68 @@
+.mat-raised-button {
+  background-color: var(--primary);
+  color: var(--on-primary);
+}
+
+.mat-stroked-button {
+  color: var(--on-surface);
+}
+
+div {
+  color: var(--on-surface);
+}
+
+.info{
+  vertical-align: bottom;
+  margin-left: -5px;
+}
+
+.info-icon{
+  font-size: 40px;
+}
+
+.container{
+  width:100%;
+  height:100%;
+  position:relative;
+  left:0px;
+  top:0px;
+}
+
+.content_container{
+  width:100%;
+  height:calc( 100% - 50px );
+  float:left;
+}
+
+.scroll_container{
+  width:100%;
+  height:100%;
+  overflow-y:auto;
+}
+
+.inner_scroll_container{
+  width:100%;
+  margin-top:15px;
+  float:left;
+}
+
+.button_container{
+  width:100%;
+  height:50px;
+  float:left;
+}
+
+h1 {
+  display:inline;
+  margin: 0; /* material design reset */
+}
+
+.header-container {
+  display: flex;
+  align-items: center;
+  margin-bottom: 20px; /* material h1 style */
+}
+
+.header-container button {
+  margin-left: .3rem;
+}
diff --git a/src/app/components/home/_dialogs/cookies/cookies.component.spec.ts b/src/app/components/home/_dialogs/cookies/cookies.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..99d891fa5b91396ca54ffab0916224c7615acaa7
--- /dev/null
+++ b/src/app/components/home/_dialogs/cookies/cookies.component.spec.ts
@@ -0,0 +1,27 @@
+/**
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { CookiesComponent } from './cookies.component';
+
+describe('CookiesComponent', () => {
+  let component: CookiesComponent;
+  let fixture: ComponentFixture<CookiesComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ CookiesComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(CookiesComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+**/
diff --git a/src/app/components/home/_dialogs/cookies/cookies.component.ts b/src/app/components/home/_dialogs/cookies/cookies.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2dc0291043f7e8440afd9db20c0e7682c1fa8af3
--- /dev/null
+++ b/src/app/components/home/_dialogs/cookies/cookies.component.ts
@@ -0,0 +1,66 @@
+import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
+import { DataProtectionComponent } from '../data-protection/data-protection.component';
+import { MatDialog, MatDialogRef } from '@angular/material';
+import { DialogConfirmActionButtonType } from '../../../shared/dialog/dialog-action-buttons/dialog-action-buttons.component';
+
+@Component({
+  selector: 'app-cookies',
+  templateUrl: './cookies.component.html',
+  styleUrls: ['./cookies.component.scss']
+})
+export class CookiesComponent implements OnInit {
+
+  @ViewChild('header')
+  dialogTitle: ElementRef;
+
+  deviceType: string;
+  currentLang: string;
+
+  confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Primary;
+
+  constructor(private dialog: MatDialog, private dialogRef: MatDialogRef<CookiesComponent>) {
+  }
+
+  ngOnInit() {
+    this.currentLang = localStorage.getItem('currentLang');
+
+    // not really the nicest way but should do its job until a better or native solution was found
+    setTimeout(() => document.getElementById('cookie-header').focus(), 400);
+  }
+
+  acceptCookies() {
+    localStorage.setItem('cookieAccepted', 'true');
+    localStorage.setItem('dataProtectionConsent', 'true');
+    this.dialogRef.close(true);
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 500);
+  }
+
+  exitApp() {
+    localStorage.setItem('cookieAccepted', 'false');
+    // TODO somehow exit the app, since the user didn't accept cookie usage
+    this.dialogRef.close(false);
+  }
+
+  openDataProtection() {
+  const dialogRef = this.dialog.open(DataProtectionComponent, {
+    width: '90%'
+  });
+  dialogRef.componentInstance.deviceType = this.deviceType;
+  }
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildConfirmActionCallback(): () => void {
+    return () => this.acceptCookies();
+  }
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildDeclineActionCallback(): () => void {
+    return () => this.exitApp();
+  }
+}
diff --git a/src/app/components/home/_dialogs/data-protection/data-protection.component.html b/src/app/components/home/_dialogs/data-protection/data-protection.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..c9a8937465c52fe319869b84cec45d2fa3271208
--- /dev/null
+++ b/src/app/components/home/_dialogs/data-protection/data-protection.component.html
@@ -0,0 +1,20 @@
+<div>
+  <h1 tabindex="0" mat-dialog-title class="modal">{{ 'data-protection.title' | translate }}</h1>
+
+  <mat-divider></mat-divider>
+
+  <mat-dialog-content tabindex="0">
+    <app-data-protection-en *ngIf="currentLang=='en'"></app-data-protection-en>
+    <app-data-protection-de *ngIf="currentLang=='de'"></app-data-protection-de>
+
+
+    <app-dialog-action-buttons
+      buttonsLabelSection="data-protection"
+      confirmButtonLabel="consent"
+      [confirmButtonType]=confirmButtonType
+      [cancelButtonClickAction]="buildDeclineActionCallback()"
+      [confirmButtonClickAction]="buildConfirmActionCallback()">
+    </app-dialog-action-buttons>
+  </mat-dialog-content>
+</div>
+
diff --git a/src/app/components/home/_dialogs/data-protection/data-protection.component.scss b/src/app/components/home/_dialogs/data-protection/data-protection.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..029ef351da684dfe73e89d5cf93931159826115c
--- /dev/null
+++ b/src/app/components/home/_dialogs/data-protection/data-protection.component.scss
@@ -0,0 +1,21 @@
+h1 {
+  font-size: 2em;
+}
+
+h2 {
+  font-size: large;
+}
+
+div {
+  font-family: Roboto, "Helvetica Neue", sans-serif;
+  color: var(--on-surface);
+}
+
+.mat-raised-button {
+  background-color: var(--primary);
+  color: var(--on-primary);
+}
+
+.mat-stroked-button {
+  color: var(--on-surface);
+}
diff --git a/src/app/components/home/_dialogs/data-protection/data-protection.component.spec.ts b/src/app/components/home/_dialogs/data-protection/data-protection.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..262cda67b83950b73699bbc84235e62001793bb1
--- /dev/null
+++ b/src/app/components/home/_dialogs/data-protection/data-protection.component.spec.ts
@@ -0,0 +1,27 @@
+/**
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { DataProtectionComponent } from './data-protection.component';
+
+describe('DataProtectionComponent', () => {
+  let component: DataProtectionComponent;
+  let fixture: ComponentFixture<DataProtectionComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ DataProtectionComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(DataProtectionComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+**/
diff --git a/src/app/components/home/_dialogs/data-protection/data-protection.component.ts b/src/app/components/home/_dialogs/data-protection/data-protection.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..db83c0445c7f8a832f2463868d8bbf0bbe46712f
--- /dev/null
+++ b/src/app/components/home/_dialogs/data-protection/data-protection.component.ts
@@ -0,0 +1,64 @@
+import { Component, OnInit } from '@angular/core';
+import { Router } from '@angular/router';
+import { DialogConfirmActionButtonType } from '../../../shared/dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { MatDialogRef } from '@angular/material';
+
+@Component({
+  selector: 'app-data-protection',
+  templateUrl: './data-protection.component.html',
+  styleUrls: ['./data-protection.component.scss']
+})
+export class DataProtectionComponent implements OnInit {
+
+  deviceType: string;
+  currentLang: string;
+  confirmButtonType: DialogConfirmActionButtonType;
+
+  constructor(private router: Router,
+              private dialogRef: MatDialogRef<DataProtectionComponent>) {
+              this.confirmButtonType = DialogConfirmActionButtonType.Primary;
+  }
+
+  ngOnInit() {
+    this.currentLang = localStorage.getItem('currentLang');
+  }
+
+  accept() {
+    this.dataProtectionConsent(true);
+    this.dialogRef.close(true);
+  }
+
+  decline() {
+    this.dataProtectionConsent(false);
+
+    // TODO: Delete all user data (backend)
+
+    if (this.router.url === '/home') {
+
+      // if current route is /home : do nothing
+
+    } else {      // otherwise: go there
+      this.router.navigate(['/home']);
+    }
+    this.dialogRef.close(false);
+  }
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildDeclineActionCallback(): () => void {
+    return () => this.decline();
+  }
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildConfirmActionCallback(): () => void {
+    return () => this.accept();
+  }
+
+
+  dataProtectionConsent(b: boolean) {
+    localStorage.setItem('dataProtectionConsent', b.toString());
+  }
+}
diff --git a/src/app/components/home/_dialogs/demo-video/demo-video.component.html b/src/app/components/home/_dialogs/demo-video/demo-video.component.html
index 75ff5b36c2abb993ebb53836fc1dd5cb5a702375..9ec77793bcea71950891a1811385273b34cbd8e0 100644
--- a/src/app/components/home/_dialogs/demo-video/demo-video.component.html
+++ b/src/app/components/home/_dialogs/demo-video/demo-video.component.html
@@ -1,11 +1,12 @@
-<div class="video" fxLayout="row" fxLayoutAlign="center">
-  <h2
-    [ngClass]="{'mobileText': deviceType === 'mobile', 'desktopText': deviceType === 'desktop'}">{{'footer.demo' | translate}}</h2>
-  <iframe [ngClass]="{'mobileFrame': deviceType === 'mobile', 'desktopFrame': deviceType === 'desktop'}"
-          src="https://www.youtube.com/embed/RODwmMxLKa0?autoplay=1" frameborder="0"
-          allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
-  <button [ngClass]="{'mobileButton': deviceType === 'mobile', 'desktopButton': deviceType === 'desktop'}"
-          mat-raised-button (click)="closeDialog()">
-    <mat-icon>exit_to_app</mat-icon>
-  </button>
-</div>
+<h1 tabindex="0" class="modal" mat-dialog-title>{{ 'introduction.title' | translate }}</h1>
+<mat-divider></mat-divider>
+<mat-dialog-content>
+  <div id="setFocus" class="intro-text" tabindex="0">
+    <app-demo-en *ngIf="currentLang=='en'"></app-demo-en>
+    <app-demo-de *ngIf="currentLang=='de'"></app-demo-de>
+  </div>
+</mat-dialog-content>
+<app-dialog-action-buttons
+  buttonsLabelSection="introduction"
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+></app-dialog-action-buttons>
diff --git a/src/app/components/home/_dialogs/demo-video/demo-video.component.scss b/src/app/components/home/_dialogs/demo-video/demo-video.component.scss
index d3acad26e4b4de8f774263f81116711800e3513f..68e6e3efd5c4988461a980bc0d2262bf3005fff9 100644
--- a/src/app/components/home/_dialogs/demo-video/demo-video.component.scss
+++ b/src/app/components/home/_dialogs/demo-video/demo-video.component.scss
@@ -1,56 +1,32 @@
-.video {
-  position: relative;
-  height: 0;
-  padding-bottom: 56.25%;
+h1 {
+  color: var(--on-surface);
+  font-size: 2em;
 }
 
-.desktopFrame {
-  position: absolute;
-  top: 15%;
-  left: 10%;
-  width: 80%;
-  height: 80%;
+h2 {
+  font-size: large;
 }
 
-.mobileFrame {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  width: 100%;
-  height: 100%;
-}
-
-.desktopText {
-  position: absolute;
-  top: 2%;
-  margin-top: 2%;
-  font-size: xx-large;
+.intro-text {
+  font-size: medium;
+  font-family: Roboto, "Helvetica Neue", sans-serif;
   color: var(--on-surface);
 }
 
-.mobileText {
-  position: absolute;
-  top: 2%;
-  left: 0;
-  margin-top: 2%;
-  font-size: xx-large;
-  color: var(--on-surface);
+iframe {
+  width: 100%;
 }
 
-.desktopButton {
-  background-color: var(--red);
-  color: white;
-  position:absolute;
-  top: 4%;
-  right: 10%;
-  max-height: 100px;
+.videoWrapper {
+  position: relative;
+  padding-bottom: 56.25%; /* 16:9 */
+  padding-top: 25px;
+  height: 0;
 }
-
-.mobileButton {
-  background-color: var(--red);
-  color: white;
-  position:absolute;
-  top: 4%;
-  right: 0;
-  max-height: 100px;
+.videoWrapper iframe {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
 }
diff --git a/src/app/components/home/_dialogs/demo-video/demo-video.component.ts b/src/app/components/home/_dialogs/demo-video/demo-video.component.ts
index 812625a2659d31c8b4439efe3a8430a52d688217..93813049aaaa56cf201e68dc14840194df6da1aa 100644
--- a/src/app/components/home/_dialogs/demo-video/demo-video.component.ts
+++ b/src/app/components/home/_dialogs/demo-video/demo-video.component.ts
@@ -9,15 +9,21 @@ import { MatDialog, MatDialogRef } from '@angular/material';
 export class DemoVideoComponent implements OnInit {
 
   deviceType: string;
+  currentLang: string;
 
   constructor(public dialogRef: MatDialogRef<DemoVideoComponent>,
               public dialog: MatDialog) { }
 
   ngOnInit() {
+    this.currentLang = localStorage.getItem('currentLang');
+    document.getElementById('setFocus').focus();
   }
 
-  closeDialog() {
-    this.dialogRef.close();
-  }
 
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.dialogRef.close();
+  }
 }
diff --git a/src/app/components/home/_dialogs/imprint/imprint.component.html b/src/app/components/home/_dialogs/imprint/imprint.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..cfc70671ead398282c72c6c130126b11397c0f22
--- /dev/null
+++ b/src/app/components/home/_dialogs/imprint/imprint.component.html
@@ -0,0 +1,10 @@
+<h1 tabindex="0" class="modal" mat-dialog-title>{{ 'imprint.title' | translate }} </h1>
+<mat-divider></mat-divider>
+<mat-dialog-content tabindex="0">
+  <app-imprint-en *ngIf="currentLang=='en'"></app-imprint-en>
+  <app-imprint-de *ngIf="currentLang=='de'"></app-imprint-de>
+  <app-dialog-action-buttons
+    buttonsLabelSection="imprint"
+    [cancelButtonClickAction]="buildDeclineActionCallback()">
+  </app-dialog-action-buttons>
+</mat-dialog-content>
diff --git a/src/app/components/home/_dialogs/imprint/imprint.component.scss b/src/app/components/home/_dialogs/imprint/imprint.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..953007020565d53626ba2e9c8b9dfda278da9779
--- /dev/null
+++ b/src/app/components/home/_dialogs/imprint/imprint.component.scss
@@ -0,0 +1,14 @@
+h1 {
+  font-size: 2em;
+  color: var(--on-surface);
+}
+
+h2 {
+  font-size: large;
+  color: var(--on-surface);
+}
+
+div {
+  font-family: Roboto, "Helvetica Neue", sans-serif;
+  color: var(--on-surface);
+}
diff --git a/src/app/components/home/_dialogs/imprint/imprint.component.spec.ts b/src/app/components/home/_dialogs/imprint/imprint.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..34125d221be6527298ca9468951770fdc59e98e0
--- /dev/null
+++ b/src/app/components/home/_dialogs/imprint/imprint.component.spec.ts
@@ -0,0 +1,26 @@
+/**import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ImprintComponent } from './imprint.component';
+
+describe('ImprintComponent', () => {
+  let component: ImprintComponent;
+  let fixture: ComponentFixture<ImprintComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ ImprintComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(ImprintComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+**/
diff --git a/src/app/components/home/_dialogs/imprint/imprint.component.ts b/src/app/components/home/_dialogs/imprint/imprint.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0aea4ed8653e0506713bfadb97c5958a47c8c178
--- /dev/null
+++ b/src/app/components/home/_dialogs/imprint/imprint.component.ts
@@ -0,0 +1,26 @@
+import { Component, OnInit } from '@angular/core';
+import { MatDialogRef } from '@angular/material';
+
+@Component({
+  selector: 'app-imprint',
+  templateUrl: './imprint.component.html',
+  styleUrls: ['./imprint.component.scss']
+})
+export class ImprintComponent implements OnInit {
+  deviceType: string;
+  currentLang: string;
+
+  constructor(private dialogRef: MatDialogRef<ImprintComponent>) {
+  }
+
+  ngOnInit() {
+    this.currentLang = localStorage.getItem('currentLang');
+  }
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildDeclineActionCallback(): () => void {
+    return () => this.dialogRef.close();
+  }
+}
diff --git a/src/app/components/home/_dialogs/overlay/overlay.component.html b/src/app/components/home/_dialogs/overlay/overlay.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..65190c2b4791436438402d0e181f0b4412b4c7fc
--- /dev/null
+++ b/src/app/components/home/_dialogs/overlay/overlay.component.html
@@ -0,0 +1,14 @@
+<div>
+  <h1 tabindex="0"  mat-dialog-title class="modal">{{ 'overlay.title' | translate }} </h1>
+
+  <mat-dialog-content tabindex="0">
+    <p>{{ 'overlay.message' | translate }}</p>
+  </mat-dialog-content>
+
+  <app-dialog-action-buttons
+    buttonsLabelSection="overlay"
+    confirmButtonLabel="cancel"
+    [confirmButtonType]=confirmButtonType
+    [confirmButtonClickAction]="buildDeclineActionCallback()"
+  ></app-dialog-action-buttons>
+</div>
diff --git a/src/app/components/home/_dialogs/overlay/overlay.component.scss b/src/app/components/home/_dialogs/overlay/overlay.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..83ac0158107fc5f144ee4caf46f22089b2c5a0c5
--- /dev/null
+++ b/src/app/components/home/_dialogs/overlay/overlay.component.scss
@@ -0,0 +1,9 @@
+.mat-raised-button {
+  background-color: var(--primary);
+  color: var(--on-primary);
+}
+
+div {
+  font-family: Roboto, "Helvetica Neue", sans-serif;
+  color: var(--on-surface);
+}
diff --git a/src/app/components/home/_dialogs/overlay/overlay.component.spec.ts b/src/app/components/home/_dialogs/overlay/overlay.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c9092b5de4b3975352605302246003306b51c38f
--- /dev/null
+++ b/src/app/components/home/_dialogs/overlay/overlay.component.spec.ts
@@ -0,0 +1,27 @@
+/**
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { OverlayComponent } from './overlay.component';
+
+describe('OverlayComponent', () => {
+  let component: OverlayComponent;
+  let fixture: ComponentFixture<OverlayComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ OverlayComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(OverlayComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+**/
diff --git a/src/app/components/home/_dialogs/overlay/overlay.component.ts b/src/app/components/home/_dialogs/overlay/overlay.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5980377d7e74a5d989b9344b5887e466b8c1df5f
--- /dev/null
+++ b/src/app/components/home/_dialogs/overlay/overlay.component.ts
@@ -0,0 +1,35 @@
+import { Component, OnInit } from '@angular/core';
+import { MatDialogRef } from '@angular/material';
+import { DialogConfirmActionButtonType } from '../../../shared/dialog/dialog-action-buttons/dialog-action-buttons.component';
+
+@Component({
+  selector: 'app-overlay',
+  templateUrl: './overlay.component.html',
+  styleUrls: ['./overlay.component.scss']
+})
+export class OverlayComponent implements OnInit {
+  deviceType: string;
+  confirmButtonType: DialogConfirmActionButtonType;
+
+  constructor(private dialogRef: MatDialogRef<OverlayComponent>) {
+    this.confirmButtonType = DialogConfirmActionButtonType.Primary;
+  }
+
+  ngOnInit() {
+  }
+
+  showCookieModal() {
+    this.dialogRef.close(true);
+  }
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildDeclineActionCallback(): () => void {
+    return () =>  {
+      this.showCookieModal();
+    };
+  }
+
+
+}
diff --git a/src/app/components/home/_dialogs/password-reset/password-reset.component.html b/src/app/components/home/_dialogs/password-reset/password-reset.component.html
index bd180a4ec815fc9add2809d0839b34db8c9be669..593c623e96f367c01d778a97b68eeaac00765871 100644
--- a/src/app/components/home/_dialogs/password-reset/password-reset.component.html
+++ b/src/app/components/home/_dialogs/password-reset/password-reset.component.html
@@ -1,17 +1,89 @@
+<mat-dialog-content>
+<div fxLayout="column" class="textfields">
+  <p>{{ 'password-reset.forgot-password' | translate }}</p>
+</div>
+
 <form (ngSubmit)="resetPassword(email.value)" fxLayout="column" fxLayoutAlign="space-around"
       fxLayoutGap="10px">
   <mat-form-field class="input-block">
-    <input matInput type="email" #email placeholder="{{ 'password-reset.email' | translate }}" [formControl]="usernameFormControl"
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           aria-labelledby="password-reset-description"
+           matInput type="email" #email [formControl]="usernameFormControl"
            [errorStateMatcher]="matcher" name="email"/>
-    <mat-error *ngIf="usernameFormControl.hasError('required')">
-      {{ 'password-reset.email-required' | translate }}
-    </mat-error>
+    <mat-placeholder class="placeholder">{{ 'password-reset.email' | translate }}</mat-placeholder>
     <mat-error *ngIf="usernameFormControl.hasError('email') && !usernameFormControl.hasError('required')">
       {{ 'password-reset.email-invalid' | translate }}
     </mat-error>
   </mat-form-field>
-
-  <button mat-raised-button type="submit">
+  <button (click)="buildCloseDialogActionCallback()" mat-flat-button type="submit" aria-labelledby="password-reset-button">
     {{ 'password-reset.reset-password' | translate }}
   </button>
 </form>
+
+<mat-divider></mat-divider>
+
+<div fxLayout="column" class="textfields">
+  <p>{{ 'password-reset.set-new-password' | translate }}</p>
+</div>
+
+<form (ngSubmit)="setNewPassword(email2.value, key.value, password1.value)" fxLayout="column" fxLayoutAlign="space-around"
+      fxLayoutGap="10px">
+  <mat-form-field class="input-block">
+    <input aria-labelledby="password-set-description" matInput type="email" #email2
+           [formControl]="usernameFormControl2" [errorStateMatcher]="matcher" name="email"/>
+    <mat-placeholder class="placeholder">{{ 'password-reset.email' | translate }}</mat-placeholder>
+    <mat-error *ngIf="usernameFormControl2.hasError('email') && !usernameFormControl2.hasError('required')">
+      {{ 'password-reset.email-invalid' | translate }}
+    </mat-error>
+  </mat-form-field>
+  <mat-form-field class="input-block">
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput type="password" #password1 [formControl]="passwordFormControl" aria-labelledby="new-password1"
+           [errorStateMatcher]="matcher"/>
+    <mat-placeholder class="placeholder">{{ 'register.password' | translate }}</mat-placeholder>
+    <mat-error *ngIf="passwordFormControl.hasError('required')">
+      {{ 'register.password-required' | translate }}
+    </mat-error>
+  </mat-form-field>
+
+  <mat-form-field class="input-block">
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput type="password" #password2 [formControl]="passwordFormControl2" aria-labelledby="new-password2"
+           [errorStateMatcher]="matcher"/>
+    <mat-placeholder class="placeholder">{{ 'register.password-verify' | translate }}</mat-placeholder>
+    <mat-error *ngIf="passwordFormControl2.hasError('required')">
+      {{ 'register.password-required' | translate }}
+    </mat-error>
+    <mat-error *ngIf="passwordFormControl2.hasError('passwordIsEqual') && !passwordFormControl2.hasError('required')">
+      {{ 'register.password-unmatch' | translate }}
+    </mat-error>
+  </mat-form-field>
+  <mat-form-field class="input-block">
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput type="text" #key [formControl]="keyFormControl" aria-labelledby="password-reset-key"
+           [errorStateMatcher]="matcher"/>
+    <mat-placeholder class="placeholder">{{ 'password-reset.key' | translate }}</mat-placeholder>
+    <mat-error *ngIf="keyFormControl.hasError('required')">
+      {{ 'password-reset.key-required' | translate }}
+    </mat-error>
+  </mat-form-field>
+  <button mat-flat-button type="submit" aria-labelledby="password-set-button">
+    {{ 'password-reset.set-new-password-button' | translate }}
+  </button>
+</form>
+
+<app-dialog-action-buttons
+  buttonsLabelSection="password-reset"
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+></app-dialog-action-buttons>
+</mat-dialog-content>
+
+<div class="visually-hidden">
+  <div id="password-reset-description">{{ 'password-reset.email-description' | translate }}</div>
+  <div id="password-reset-button">{{ 'password-reset.a11y-password_reset_button' | translate }}</div>
+  <div id="password-set-description">{{ 'password-reset.a11y-password_set_email' | translate }}</div>
+  <div id="new-password1">{{ 'password-reset.a11y-new_password1' | translate }}</div>
+  <div id="new-password2">{{ 'password-reset.a11y-new_password2' | translate }}</div>
+  <div id="password-reset-key">{{ 'password-reset.a11y-password_reset_key' | translate }}</div>
+  <div id="password-set-button">{{ 'password-reset.a11y-password_set_button' | translate }}</div>
+</div>
diff --git a/src/app/components/home/_dialogs/password-reset/password-reset.component.scss b/src/app/components/home/_dialogs/password-reset/password-reset.component.scss
index 2e3cb176694b3187cb3f83859a1c4f4dc97c380e..3a1d4d4a904e15d9609980c1c03adf03c4bd65a0 100644
--- a/src/app/components/home/_dialogs/password-reset/password-reset.component.scss
+++ b/src/app/components/home/_dialogs/password-reset/password-reset.component.scss
@@ -2,11 +2,21 @@ mat-form-field {
   color: var(--on-surface);
 }
 
-.mat-raised-button {
+.mat-flat-button {
   color: var(--on-primary);
   background-color: var(--primary);
 }
 
 input {
   caret-color: var(--on-surface);
+  color: var(--on-surface);
+}
+
+.textfields {
+  padding: .5rem 0;
+  align-items: baseline;
+}
+
+p {
+  color: var(--on-surface);
 }
diff --git a/src/app/components/home/_dialogs/password-reset/password-reset.component.ts b/src/app/components/home/_dialogs/password-reset/password-reset.component.ts
index ff2378684ec1305d9484eb63a1d7cb5928a8c75c..6a4b890c8028c233fffe8c1132ad950fdc373e0b 100644
--- a/src/app/components/home/_dialogs/password-reset/password-reset.component.ts
+++ b/src/app/components/home/_dialogs/password-reset/password-reset.component.ts
@@ -1,10 +1,13 @@
 import { Component, Inject, OnInit } from '@angular/core';
 import { FormControl, FormGroupDirective, NgForm, Validators } from '@angular/forms';
 import { ErrorStateMatcher, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
-import { RegisterComponent } from '../register/register.component';
+import { RegisterComponent, validatePassword } from '../register/register.component';
 import { AuthenticationService } from '../../../../services/http/authentication.service';
 import { NotificationService } from '../../../../services/util/notification.service';
 import { TranslateService } from '@ngx-translate/core';
+import { EventService } from '../../../../services/util/event.service';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+
 
 export class PasswordResetErrorStateMatcher implements ErrorStateMatcher {
   isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
@@ -22,6 +25,10 @@ export class PasswordResetComponent implements OnInit {
 
 
   usernameFormControl = new FormControl('', [Validators.required, Validators.email]);
+  usernameFormControl2 = new FormControl('', [Validators.required, Validators.email]);
+  passwordFormControl = new FormControl('', [Validators.required]);
+  passwordFormControl2 = new FormControl('', [Validators.required, validatePassword(this.passwordFormControl)]);
+  keyFormControl = new FormControl('', [Validators.required]);
 
   matcher = new PasswordResetErrorStateMatcher();
 
@@ -29,12 +36,39 @@ export class PasswordResetComponent implements OnInit {
               public authenticationService: AuthenticationService,
               public notificationService: NotificationService,
               public dialogRef: MatDialogRef<RegisterComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) {
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              public eventService: EventService,
+              private liveAnnouncer: LiveAnnouncer, ) {
   }
 
   ngOnInit() {
+    this.announce();
   }
 
+  public announce() {
+    const lang: string = this.translationService.currentLang;
+
+    // current live announcer content must be cleared before next read
+    this.liveAnnouncer.clear();
+
+    if (lang === 'de') {
+      this.liveAnnouncer.announce('Hier kannst du dein Passwort zurücksetzen, ' +
+        'indem du per E-Mail einen Passwortrücksetz-Schlüssel erhälst und mit diesem ein neues Passwort setzt.', 'assertive');
+    } else {
+      this.liveAnnouncer.announce('Here you can reset your password ' +
+        'by receiving a password reset key via e-mail and setting a new password with it.', 'assertive');
+    }
+
+  }
+
+  /**
+   * Closes the room create dialog on call.
+   */
+  closeDialog(): void {
+    this.dialogRef.close();
+  }
+
+
   resetPassword(username: string): void {
     username = username.trim();
 
@@ -43,8 +77,30 @@ export class PasswordResetComponent implements OnInit {
         this.translationService.get('password-reset.reset-successful').subscribe(message => {
           this.notificationService.show(message);
         });
-        this.dialogRef.close();
+        this.closeDialog();
+      });
+    } else {
+      this.translationService.get('password-reset.input-incorrect').subscribe(message => {
+        this.notificationService.show(message);
       });
+    }
+  }
+
+  setNewPassword(email: string, key: string, password: string) {
+    if (!this.usernameFormControl2.hasError('required') && !this.usernameFormControl2.hasError('email')
+      && !this.passwordFormControl2.hasError('passwordIsEqual')) {
+      if (email !== '' && key !== '' && password !== '') {
+        this.authenticationService.setNewPassword(email, key, password).subscribe(() => {
+          this.translationService.get('password-reset.new-password-successful').subscribe(message => {
+            this.notificationService.show(message);
+          });
+          this.closeDialog();
+        });
+      } else {
+        this.translationService.get('password-reset.input-incorrect').subscribe(message => {
+          this.notificationService.show(message);
+        });
+      }
     } else {
       this.translationService.get('password-reset.input-incorrect').subscribe(message => {
         this.notificationService.show(message);
@@ -52,4 +108,19 @@ export class PasswordResetComponent implements OnInit {
     }
   }
 
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.closeDialog();
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildPasswordResetActionCallback(email: HTMLInputElement): () => void {
+    return () => this.resetPassword(email.value);
+  }
 }
diff --git a/src/app/components/home/_dialogs/register/register.component.html b/src/app/components/home/_dialogs/register/register.component.html
index 16dfb46949628a31cd73459cc6c70f01a0a0cc9b..fabac25d18e69269125c66b733981ea6ab676403 100644
--- a/src/app/components/home/_dialogs/register/register.component.html
+++ b/src/app/components/home/_dialogs/register/register.component.html
@@ -1,8 +1,11 @@
+<mat-dialog-content>
 <form (ngSubmit)="register(userName.value, userPassword1.value)" fxLayout="column"
       fxLayoutAlign="space-around" fxLayoutGap="10px">
   <mat-form-field class="input-block">
-    <input matInput type="email" #userName placeholder="{{ 'register.email' | translate }}" [formControl]="usernameFormControl"
-           [errorStateMatcher]="matcher">
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput type="email" #userName [formControl]="usernameFormControl"
+           [errorStateMatcher]="matcher" aria-labelledby="register-email-description"/>
+    <mat-placeholder class="placeholder">{{ 'register.email' | translate }}</mat-placeholder>
     <mat-error *ngIf="usernameFormControl.hasError('email') && !usernameFormControl.hasError('required')">
       {{ 'register.email-invalid' | translate }}
     </mat-error>
@@ -12,24 +15,32 @@
   </mat-form-field>
 
   <mat-form-field class="input-block">
-    <input matInput type="email" #userName2 placeholder="{{ 'register.email-verify' | translate }}" [formControl]="username2FormControl"
-           [errorStateMatcher]="matcher">
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput type="email" #userName2 [formControl]="username2FormControl"
+           [errorStateMatcher]="matcher" aria-labelledby="register-email-description-repeat"/>
+    <mat-placeholder class="placeholder">{{ 'register.email-verify' | translate }}</mat-placeholder>
     <mat-error *ngIf="username2FormControl.hasError('emailIsEqual') && !username2FormControl.hasError('required')">
       {{ 'register.email-unmatch' | translate }}
     </mat-error>
   </mat-form-field>
 
   <mat-form-field class="input-block">
-    <input matInput type="password" #userPassword1 placeholder="{{ 'register.password' | translate }}"
-           [formControl]="password1FormControl" [errorStateMatcher]="matcher">
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput type="password" #userPassword1
+           [formControl]="password1FormControl" [errorStateMatcher]="matcher"
+           aria-labelledby="register-password-description">
+    <mat-placeholder class="placeholder">{{ 'register.password' | translate }}</mat-placeholder>
     <mat-error *ngIf="password1FormControl.hasError('required')">
       {{ 'register.password-required' | translate }}
     </mat-error>
   </mat-form-field>
 
   <mat-form-field class="input-block">
-    <input matInput type="password" #userPassword2 placeholder="{{ 'register.password-verify' | translate}}"
-           [formControl]="password2FormControl" [errorStateMatcher]="matcher">
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput type="password" #userPassword2
+           [formControl]="password2FormControl" [errorStateMatcher]="matcher"
+           aria-labelledby="register-password-description-repeat">
+    <mat-placeholder class="placeholder">{{ 'register.password-verify' | translate}}</mat-placeholder>
     <mat-error *ngIf="password2FormControl.hasError('required')">
       {{ 'register.password-required' | translate }}
     </mat-error>
@@ -37,7 +48,18 @@
       {{ 'register.password-unmatch' | translate }}
     </mat-error>
   </mat-form-field>
-
-  <button mat-raised-button color="accent" type="submit">{{ 'register.register' | translate }}</button>
-
+  <app-dialog-action-buttons
+    buttonsLabelSection="register"
+    confirmButtonLabel="register"
+    [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+    [confirmButtonClickAction]="buildRegisterActionCallback(userName, userPassword1)"
+  ></app-dialog-action-buttons>
 </form>
+</mat-dialog-content>
+
+<div class="visually-hidden">
+  <div id="register-email-description">{{ 'register.email-description' | translate }}</div>
+  <div id="register-email-description-repeat">{{ 'register.email-description-repeat' | translate }}</div>
+  <div id="register-password-description">{{ 'register.password-description' | translate }}</div>
+  <div id="register-password-description-repeat">{{ 'register.password-description-repeat' | translate }}</div>
+</div>
diff --git a/src/app/components/home/_dialogs/register/register.component.scss b/src/app/components/home/_dialogs/register/register.component.scss
index af3c380ca4d7a379a60eed34ff3e6e8ba3d545e2..5a113982addb7cd7ad11f078e0e001fcf3a8455a 100644
--- a/src/app/components/home/_dialogs/register/register.component.scss
+++ b/src/app/components/home/_dialogs/register/register.component.scss
@@ -2,7 +2,7 @@ mat-form-field {
   color: var(--on-surface);
 }
 
-.mat-raised-button {
+.mat-flat-button {
   color: var(--on-primary);
   background-color: var(--primary);
 }
@@ -10,4 +10,3 @@ mat-form-field {
 input {
   caret-color: var(--on-surface);
 }
-
diff --git a/src/app/components/home/_dialogs/register/register.component.ts b/src/app/components/home/_dialogs/register/register.component.ts
index 5a757e982821220a68cf55cbd80cdc1345208c6a..4e8a484afb606dd2ba7c618e5e9b062b92893a71 100644
--- a/src/app/components/home/_dialogs/register/register.component.ts
+++ b/src/app/components/home/_dialogs/register/register.component.ts
@@ -4,6 +4,7 @@ import { FormControl, FormGroupDirective, NgForm, Validators } from '@angular/fo
 import { AuthenticationService } from '../../../../services/http/authentication.service';
 import { NotificationService } from '../../../../services/util/notification.service';
 import { TranslateService } from '@ngx-translate/core';
+import { EventService } from '../../../../services/util/event.service';
 
 export class RegisterErrorStateMatcher implements ErrorStateMatcher {
   isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
@@ -12,7 +13,7 @@ export class RegisterErrorStateMatcher implements ErrorStateMatcher {
   }
 }
 
-function validatePassword(password1: FormControl) {
+export function validatePassword(password1: FormControl) {
   return (formControl: FormControl) => {
     const password1Value = password1.value;
     const password2Value = formControl.value;
@@ -64,14 +65,24 @@ export class RegisterComponent implements OnInit {
               public authenticationService: AuthenticationService,
               public notificationService: NotificationService,
               public dialogRef: MatDialogRef<RegisterComponent>,
-              @Inject(MAT_DIALOG_DATA) public data: any) {
+              @Inject(MAT_DIALOG_DATA) public data: any,
+              public eventService: EventService) {
   }
 
-  onNoClick(): void {
-    this.dialogRef.close();
+
+  /**
+   * Closes the register dialog on call.
+   */
+  closeDialog(): void {
+    this.dialogRef.close([]);
   }
 
+
+  /**
+   * @inheritDoc
+   */
   ngOnInit() {
+      // nothing special yet
   }
 
   register(username: string, password: string): void {
@@ -98,4 +109,20 @@ export class RegisterComponent implements OnInit {
       });
     }
   }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.closeDialog();
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildRegisterActionCallback(userName: HTMLInputElement, password: HTMLInputElement): () => void {
+    return () => this.register(userName.value, password.value);
+  }
 }
diff --git a/src/app/components/home/_dialogs/user-activation/user-activation.component.html b/src/app/components/home/_dialogs/user-activation/user-activation.component.html
index 9b98385e699c7a9793b3484711b22f7e946589c9..d703c652a92c19ff256eab94ee93940d45e79a5d 100644
--- a/src/app/components/home/_dialogs/user-activation/user-activation.component.html
+++ b/src/app/components/home/_dialogs/user-activation/user-activation.component.html
@@ -1,9 +1,26 @@
 <form (ngSubmit)="login(userActivationKey.value)" fxLayout="column" fxLayoutAlign="space-around"
       fxLayoutGap="10px">
   <mat-form-field class="input-block">
-    <input matInput #userActivationKey type="text" placeholder="{{ 'login.activation-key' | translate }}"
-           [formControl]="activationKeyFormControl" name="activation-key"/>
-    <mat-error *ngIf="activationKeyFormControl.hasError('required')">{{ 'login.activation-key-required' | translate }}</mat-error>
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           matInput #userActivationKey type="text"
+           [formControl]="activationKeyFormControl" name="activation-key"
+           aria-labelledby="activation-key-input-description"/>
+    <mat-placeholder class="placeholder">{{ 'login.activation-key' | translate }}</mat-placeholder>
+    <mat-error *ngIf="activationKeyFormControl.hasError('required')">{{ 'user-activation.activation-key-required' | translate }}</mat-error>
   </mat-form-field>
-  <button mat-raised-button color="primary" type="submit">{{ 'login.activate' | translate }}</button>
-</form>
+</form><div fxLayout="column" fxLayoutAlign="space-around">
+  <button (click)="resetActivation()" mat-flat-button type="button"
+          matTooltip="{{'login.restart-account-activation-tooltip' | translate}}">
+    {{ 'login.restart-account-activation-button' | translate }}
+  </button>
+</div>
+<app-dialog-action-buttons
+  buttonsLabelSection="user-activation"
+  confirmButtonLabel="activate"
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildActivationActionCallback(userActivationKey)"
+></app-dialog-action-buttons>
+
+<div class="visually-hidden">
+  <div id="activation-key-input-description">{{ 'user-activation.activation-key-input-description' | translate }}</div>
+</div>
diff --git a/src/app/components/home/_dialogs/user-activation/user-activation.component.scss b/src/app/components/home/_dialogs/user-activation/user-activation.component.scss
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ff8a21f92898b0a0ab512ce549816a24ad09e7fe 100644
--- a/src/app/components/home/_dialogs/user-activation/user-activation.component.scss
+++ b/src/app/components/home/_dialogs/user-activation/user-activation.component.scss
@@ -0,0 +1,4 @@
+.mat-flat-button {
+  color: var(--on-primary);
+  background-color: var(--primary);
+}
diff --git a/src/app/components/home/_dialogs/user-activation/user-activation.component.ts b/src/app/components/home/_dialogs/user-activation/user-activation.component.ts
index 74629868e8f34cb20109be64f5c71f2916e4c0bf..f8d4abecbbb05aeb4a108e7a5591ae722d0cc43e 100644
--- a/src/app/components/home/_dialogs/user-activation/user-activation.component.ts
+++ b/src/app/components/home/_dialogs/user-activation/user-activation.component.ts
@@ -4,6 +4,7 @@ import { UserService } from '../../../../services/http/user.service';
 import { FormControl, Validators } from '@angular/forms';
 import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
 import { TranslateService } from '@ngx-translate/core';
+import { EventService } from '../../../../services/util/event.service';
 
 @Component({
   selector: 'app-user-activation',
@@ -19,8 +20,8 @@ export class UserActivationComponent implements OnInit {
     public userService: UserService,
     public notificationService: NotificationService,
     public dialogRef: MatDialogRef<UserActivationComponent>,
-    private translationService: TranslateService
-  ) {
+    private translationService: TranslateService,
+    public eventService: EventService) {
   }
 
   ngOnInit() {
@@ -34,10 +35,36 @@ export class UserActivationComponent implements OnInit {
         this.dialogRef.close({ success: true });
       },
       err => {
-        this.translationService.get('login.activation-key-incorrect').subscribe(message => {
+        this.translationService.get('user-activation.activation-key-incorrect').subscribe(message => {
           this.notificationService.show(message);
         });
       }
     );
   }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.dialogRef.close();
+  }
+
+  resetActivation(): void {
+    this.userService.resetActivation(this.data.name.trim()).subscribe(
+      ret => {
+        this.translationService.get('login.restart-account-activation-correct').subscribe(message => {
+          this.notificationService.show(message);
+        });
+      }
+    );
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildActivationActionCallback(activationKey: HTMLInputElement): () => void {
+    return () => this.login(activationKey.value);
+  }
 }
diff --git a/src/app/components/home/home-page/home-page.component.html b/src/app/components/home/home-page/home-page.component.html
index 5d180d3178db78b08c2139b09e9c89baae30ef46..85872135d6aff458d9311f834eb82904d6714740 100644
--- a/src/app/components/home/home-page/home-page.component.html
+++ b/src/app/components/home/home-page/home-page.component.html
@@ -1,28 +1,19 @@
-<div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill>
-  <div fxLayout="row" fxLayoutAlign="center" *ngIf="deviceType === 'mobile'">
+<div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill class="home">
+  <div fxLayout="row" fxLayoutAlign="center">
     <h1>
-      <span class="main-heading-secondary">{{ 'login-page.welcome' | translate }}</span>
+      <span class="main-heading-secondary" aria-hidden="true">{{ 'login.welcome' | translate }}</span>
       <span class="main-heading-primary">frag.jetzt</span>
     </h1>
   </div>
   <div fxLayout="row" fxLayoutAlign="center">
     <mat-card class="outer">
       <mat-card-content>
-      <mat-card-header *ngIf="deviceType === 'desktop'">
-        <mat-card-title>
-            <h1>
-                <span class="main-heading-secondary">{{ 'login-page.welcome' | translate }}</span>
-                <span class="main-heading-primary">frag.jetzt</span>
-              </h1>
-        </mat-card-title>
-      </mat-card-header>
-        <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill>
-          <div fxLayout="row" fxLayoutAlign="center">
-            <app-new-landing></app-new-landing>
-          </div>
+        <div fxLayout="row" fxLayoutAlign="center">
+          <app-new-landing></app-new-landing>
         </div>
       </mat-card-content>
     </mat-card>
   </div>
+  <button id="live_announcer-button" tabIndex="-1" (click)="announce()"
+          class="visually-hidden">{{ 'home-page.live-announcer' | translate }}</button>
 </div>
-
diff --git a/src/app/components/home/home-page/home-page.component.scss b/src/app/components/home/home-page/home-page.component.scss
index 8e3eb4490218a902e72e7e40ef97172969ee4496..4e2ac1ea6eeab3c3a1047ef2c9f60eff9242db68 100644
--- a/src/app/components/home/home-page/home-page.component.scss
+++ b/src/app/components/home/home-page/home-page.component.scss
@@ -24,6 +24,10 @@
   animation: moveInRight 1s ease-out;
 }
 
+.home {
+  margin-top: 10%;
+}
+
 @keyframes moveInLeft {
   0% {
     opacity: 0;
diff --git a/src/app/components/home/home-page/home-page.component.spec.ts b/src/app/components/home/home-page/home-page.component.spec.ts
index ffdebfc19f62e09c8921210cafd00929e4565e1a..eca285ff030baaebc45f7d1b263ccd65a7c5c000 100644
--- a/src/app/components/home/home-page/home-page.component.spec.ts
+++ b/src/app/components/home/home-page/home-page.component.spec.ts
@@ -1,3 +1,4 @@
+/**
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 
 import { HomePageComponent } from './home-page.component';
@@ -54,3 +55,4 @@ describe('HomePageComponent', () => {
     expect(component).toBeTruthy();
   });
 });
+**/
diff --git a/src/app/components/home/home-page/home-page.component.ts b/src/app/components/home/home-page/home-page.component.ts
index a9c1adaf3c201c259f5f3c4ca9e6afe1b66db402..4c80a678b9fa4ffdc343a07eb0a6305d67a50dab 100644
--- a/src/app/components/home/home-page/home-page.component.ts
+++ b/src/app/components/home/home-page/home-page.component.ts
@@ -1,19 +1,62 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, OnDestroy, Renderer2, AfterContentInit } from '@angular/core';
+import { EventService } from '../../../services/util/event.service';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-home-page',
   templateUrl: './home-page.component.html',
   styleUrls: ['./home-page.component.scss']
 })
-export class HomePageComponent implements OnInit {
+export class HomePageComponent implements OnInit, OnDestroy, AfterContentInit {
 
   deviceType: string;
+  listenerFn: () => void;
 
-  constructor() {
+  constructor(
+    private eventService: EventService,
+    private liveAnnouncer: LiveAnnouncer,
+    private _r: Renderer2
+  ) {
+  }
+
+  ngAfterContentInit(): void {
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 500);
   }
 
   ngOnInit() {
     this.deviceType = localStorage.getItem('deviceType');
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit1) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('session_id-input').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit3) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('new_session-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit4) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('language-menu').focus();
+      } else if (
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape, KeyboardKey.Digit9) === true && this.eventService.focusOnInput === false
+      ) {
+        this.announce();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true && this.eventService.focusOnInput === true) {
+        document.getElementById('session_enter-button').focus();
+        this.eventService.makeFocusOnInputFalse();
+      }
+    });
   }
 
+  ngOnDestroy() {
+    this.listenerFn();
+    this.eventService.makeFocusOnInputFalse();
+  }
+
+  public announce() {
+    this.liveAnnouncer.clear();
+    this.liveAnnouncer.announce('Du befindest dich auf der Startseite von fragpunktjetzt. ' +
+      'Drücke die Taste 1 um einen Sitzungs-Code einzugeben, die Taste 2 um in die Benutzer-Anmeldung ' +
+      'oder das Sitzungs-Menü zu gelangen, die Taste 3 um eine neue Sitzung zu erstellen, ' +
+      'die Taste 4 um zur Sprachauswahl zu gelangen, oder die Taste 9 um diese Ansage zu wiederholen.', 'assertive');
+  }
 }
diff --git a/src/app/components/home/new-landing/new-landing.component.html b/src/app/components/home/new-landing/new-landing.component.html
index c9731f48b29f9ceacb142897bd697ab8ba205579..8c373012bbd6ed8e7e8247777a2ccd6234d2a109 100644
--- a/src/app/components/home/new-landing/new-landing.component.html
+++ b/src/app/components/home/new-landing/new-landing.component.html
@@ -1,7 +1,11 @@
 <div fxLayout="column" fxLayoutAlign="center center" fxlayoutgap="20px" fxFill>
     <app-room-join></app-room-join>
-    <button mat-fab class="fab-extended" (click)="createSession()">
+  <button [disabled]="cookiesDisabled()"  id="new_session-button" mat-fab class="fab-extended" (click)="createSession()" aria-labelledby="create-label">
       <mat-icon class="add">add</mat-icon>
       {{'home-page.create-session' | translate}}
     </button>
+
+  <div class="visually-hidden">
+    <div id="create-label">{{ 'home-page.accessibility-create' | translate}}</div>
+  </div>
 </div>
diff --git a/src/app/components/home/new-landing/new-landing.component.scss b/src/app/components/home/new-landing/new-landing.component.scss
index 87e458989ee2a526a6292b29537fd5aee0b166c9..3b6c2ec2b6b9efc9262b3de52ea724451d7ead1d 100644
--- a/src/app/components/home/new-landing/new-landing.component.scss
+++ b/src/app/components/home/new-landing/new-landing.component.scss
@@ -14,3 +14,8 @@
   padding-left: 5px;
   color: var(--on-primary);
 }
+
+#new_session-button:focus {
+  background: var(--on-surface);
+  color: var(--background);
+}
diff --git a/src/app/components/home/new-landing/new-landing.component.ts b/src/app/components/home/new-landing/new-landing.component.ts
index 91646f0734ab29fbd63b731c95b1afaa886ee907..8b40e641f771e3a5f843813c240c425eda1fc65d 100644
--- a/src/app/components/home/new-landing/new-landing.component.ts
+++ b/src/app/components/home/new-landing/new-landing.component.ts
@@ -7,7 +7,6 @@ import { LanguageService } from '../../../services/util/language.service';
 import { AuthenticationService } from '../../../services/http/authentication.service';
 import { User } from '../../../models/user';
 import { UserRole } from '../../../models/user-roles.enum';
-import { LoginComponent } from '../../shared/login/login.component';
 
 @Component({
   selector: 'app-new-landing',
@@ -33,18 +32,9 @@ export class NewLandingComponent implements OnInit {
 
   createSession() {
     if (!this.user) {
-      this.openLoginDialog();
-      return;
-    } else if (this.user.role === 0) {
-      if (this.user.isGuest) {
-        this.authenticationService.logout();
-        this.authenticationService.guestLogin(1).subscribe(login => {
-          this.openCreateRoomDialog();
-        });
-      } else {
-        this.authenticationService.logout();
-        this.openLoginDialog();
-      }
+      this.authenticationService.guestLogin(UserRole.CREATOR).subscribe( () => {
+        this.openCreateRoomDialog();
+      });
     } else {
       this.openCreateRoomDialog();
     }
@@ -56,17 +46,7 @@ export class NewLandingComponent implements OnInit {
     });
   }
 
-  openLoginDialog(): void {
-    const dialogRef = this.dialog.open(LoginComponent, {
-      width: '350px'
-    });
-    dialogRef.componentInstance.role = UserRole.CREATOR;
-    dialogRef.componentInstance.isStandard = false;
-    dialogRef.afterClosed()
-      .subscribe(result => {
-        if (this.user) {
-          this.openCreateRoomDialog();
-        }
-      });
+  cookiesDisabled(): boolean {
+    return localStorage.getItem('cookieAccepted') === 'false';
   }
 }
diff --git a/src/app/components/home/user-home/user-home.component.html b/src/app/components/home/user-home/user-home.component.html
index 049c78a89828aa58ffebe40600cbd30da5658610..9605cbb4a9961912fbc5b9dee1cfc8f1112f2314 100644
--- a/src/app/components/home/user-home/user-home.component.html
+++ b/src/app/components/home/user-home/user-home.component.html
@@ -1,14 +1,17 @@
-<div fxLayout="column" fxLayoutAlign="start" fxLayoutGap="20px" >
+<div class="userHomeContainer" fxLayout="column" fxLayoutAlign="start" fxLayoutGap="20px">
+  <h1 fxLayoutAlign="center">{{ 'session.join' | translate }}</h1>
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="15px">
     <app-room-join></app-room-join>
   </div>
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="15px">
-    <button mat-raised-button (click)="openCreateRoomDialog()">
+    <button class="focus_button" mat-raised-button (click)="openCreateRoomDialog()" id="create_session-button">
       <mat-icon>add</mat-icon>
-      {{ 'home-page.create-session' | translate }}</button>
+      {{ 'home-page.create-session' | translate }}
+    </button>
   </div>
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="15px">
     <app-room-list [user]="user"></app-room-list>
   </div>
+  <button id="live_announcer-button" tabIndex="-1" (click)="announce()" class="visually-hidden">{{ 'home-page.live-announcer-user' | translate }}</button>
 </div>
 
diff --git a/src/app/components/home/user-home/user-home.component.scss b/src/app/components/home/user-home/user-home.component.scss
index 60a955b56782581a8f78d68e5a4e6f573f7c5c7e..d5f973a915ca0f09535097949225d2e7142ae187 100644
--- a/src/app/components/home/user-home/user-home.component.scss
+++ b/src/app/components/home/user-home/user-home.component.scss
@@ -1,3 +1,7 @@
+.userHomeContainer {
+  margin-top: -2rem;
+}
+
 app-room-list {
   width: 100%;
   max-width: 800px;
@@ -8,6 +12,11 @@ app-room-list {
   color: var(--on-primary);
 }
 
-app-join-room {
-  max-width: 800px;
+h1 {
+  color: var(--on-surface)!important;
+}
+
+.focus_button:focus {
+  background: var(--on-surface);
+  color: var(--background);
 }
diff --git a/src/app/components/home/user-home/user-home.component.ts b/src/app/components/home/user-home/user-home.component.ts
index e1d0b3b6949fd72a595e0a01f77cfc9a187f75a6..0a1769e1abc267b983d771e8f81dfa8a85dbf000 100644
--- a/src/app/components/home/user-home/user-home.component.ts
+++ b/src/app/components/home/user-home/user-home.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, OnDestroy, Renderer2, AfterContentInit } from '@angular/core';
 import { MatDialog } from '@angular/material';
 import { TranslateService } from '@ngx-translate/core';
 import { LanguageService } from '../../../services/util/language.service';
@@ -6,29 +6,68 @@ import { RoomCreateComponent } from '../../shared/_dialogs/room-create/room-crea
 import { UserRole } from '../../../models/user-roles.enum';
 import { User } from '../../../models/user';
 import { AuthenticationService } from '../../../services/http/authentication.service';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { EventService } from '../../../services/util/event.service';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-user-home',
   templateUrl: './user-home.component.html',
   styleUrls: [ './user-home.component.scss' ]
 })
-export class UserHomeComponent implements OnInit {
+export class UserHomeComponent implements OnInit, OnDestroy, AfterContentInit {
   user: User;
   creatorRole: UserRole = UserRole.CREATOR;
   participantRole: UserRole = UserRole.PARTICIPANT;
 
+  listenerFn: () => void;
+
   constructor(
     public dialog: MatDialog,
     private translateService: TranslateService,
     protected langService: LanguageService,
-    private authenticationService: AuthenticationService
+    private authenticationService: AuthenticationService,
+    private eventService: EventService,
+    private liveAnnouncer: LiveAnnouncer,
+    private _r: Renderer2
   ) {
     langService.langEmitter.subscribe(lang => translateService.use(lang));
   }
 
+  ngAfterContentInit(): void {
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 700);
+  }
   ngOnInit() {
     this.translateService.use(localStorage.getItem('currentLang'));
     this.authenticationService.watchUser.subscribe(newUser => this.user = newUser);
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit1) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('session_id-input').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit3) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('create_session-button').focus();
+      } else if (
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape, KeyboardKey.Digit9) === true && this.eventService.focusOnInput === false
+      ) {
+        this.announce();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true && this.eventService.focusOnInput === true) {
+        document.getElementById('session_enter-button').focus();
+      }
+    });
+  }
+
+  ngOnDestroy() {
+    this.listenerFn();
+  }
+
+  public announce() {
+    this.liveAnnouncer.clear();
+    this.liveAnnouncer.announce('Du befindest dich auf deiner Benutzer-Seite. ' +
+      'Drücke die Taste 1 um einen Sitzungs-Code einzugeben, die Taste 2 um auf das Sitzungs-Menü zu gelangen, ' +
+      'die Taste 3 um eine neue Sitzung zu erstellen, die Taste 0 um zurück zur Startseite zu gelangen, ' +
+      'oder die Taste 9 um diese Ansage zu wiederholen.', 'assertive');
   }
 
   openCreateRoomDialog(): void {
diff --git a/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.html b/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.html
index 7c5e66d5d4acdb5f02e1dfa2efd77bc4da7915c6..87c0b3192a71a2807f55739cb65e256243f667d9 100644
--- a/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.html
+++ b/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.html
@@ -3,10 +3,13 @@
   <mat-label *ngIf="deviceType === 'desktop'" fxLayoutAlign="center center">
     <mat-icon class="search-icon">search</mat-icon>
   </mat-label>
-  <input #searchBox id="searchBox" [ngClass]="{'desktop-input': deviceType === 'desktop',
+  <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+         #searchBox id="searchBox" [ngClass]="{'desktop-input': deviceType === 'desktop',
    'mobile-input': deviceType === 'mobile' && !search, 'mobile-input-2': deviceType === 'mobile' && search }"
-         [placeholder]="searchPlaceholder" (input)="searchComments()" [(ngModel)]="searchInput">
-  <button mat-icon-button class="searchBarButton close" *ngIf="searchInput !== '' || search"
+         (input)="searchComments()" [(ngModel)]="searchInput" [placeholder]="searchPlaceholder"
+         aria-labelledby="search-box-input-description"/>
+  <button id="search_close-button"
+          mat-icon-button class="searchBarButton close" *ngIf="searchInput !== '' || search"
           (click)="hideCommentsList=false; searchInput = ''; search = false; searchPlaceholder = '';">
     <mat-icon>close</mat-icon>
   </button>
@@ -22,13 +25,15 @@
       <mat-icon class="searchBarIcon">search</mat-icon>
     </button>
 
-    <button mat-icon-button class="searchBarButton"
+    <button id="sort-button"
+            mat-icon-button class="searchBarButton"
             *ngIf="!searchBox.value && comments && comments.length > 0 && !search"
             [matMenuTriggerFor]="sortMenu" matTooltip="{{ 'comment-list.sort-comments' | translate }}">
       <mat-icon class="searchBarIcon">swap_vert</mat-icon>
     </button>
 
-    <button mat-icon-button class="searchBarButton"
+    <button id="filter-button"
+            mat-icon-button class="searchBarButton"
             *ngIf="!searchBox.value && comments && comments.length > 0 && !search"
             [matMenuTriggerFor]="filterMenu" matTooltip="{{ 'comment-list.filter-comments' | translate }}">
       <mat-icon class="searchBarIcon">filter_list</mat-icon>
@@ -81,7 +86,7 @@
   </mat-menu>
 </div>
 
-<button mat-icon-button class="scrollTop" [ngClass]="{'visible': scrollExtended}" (click)="scrollToTop()">
+<button mat-icon-button class="scrollTop" [ngClass]="{'visible': scrollExtended}" (click)="scrollToTop()" tabIndex="-1">
   <mat-icon>arrow_upward</mat-icon>
 </button>
 
@@ -92,5 +97,11 @@
 
 <div *ngIf="comments && comments.length < 1 && !isLoading" fxLayout="row" fxLayoutAlign="center center"
      class="no-comments">
-  <h4>{{ 'comment-page.no-comments' | translate }}</h4>
+  <p>{{ 'comment-page.no-comments' | translate }}</p>
+</div>
+
+<div class="visually-hidden">
+  <div id="search-box-input-description">
+    {{ 'comment-page.search-box-input-description' | translate }}
+  </div>
 </div>
diff --git a/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.scss b/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.scss
index 1e78d9909247c0e9927c626dce9c349a2bae2642..e61b4b85e77070fddcf72194f1a74d40b4595445 100644
--- a/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.scss
+++ b/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.scss
@@ -11,7 +11,7 @@ app-comment {
 #searchBox {
   box-sizing: border-box;
   padding: 0 10px 0 5px;
-  background-color: var(--dialog);
+  background-color: var(--background);
   border: none;
   outline: none;
   min-height: 60px;
@@ -36,13 +36,13 @@ app-comment {
 
 .search-container {
   border-radius: 5px;
-  background-color: var(--dialog);
+  background-color: var(--background);
   margin-bottom: 2%;
 }
 
 .search-container-fixed {
   border-radius: 5px;
-  background-color: var(--dialog);
+  background-color: var(--background);
   margin-bottom: 2%;
   position: fixed;
   top: 10px;
@@ -80,8 +80,8 @@ app-comment {
   margin-top: 10%;
 }
 
-h4  {
-  color: var(--on-surface);
+p  {
+  color: var(--on-surface) !important;
 }
 
 .button-bar {
diff --git a/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.ts b/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.ts
index 014367c0443ad923c35cf367365645792fd1bff0..747f090338970b606fa8214bb4753a66c14e3a93 100644
--- a/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.ts
+++ b/src/app/components/moderator/moderator-comment-list/moderator-comment-list.component.ts
@@ -13,6 +13,7 @@ import { Room } from '../../../models/room';
 import { RoomService } from '../../../services/http/room.service';
 import { VoteService } from '../../../services/http/vote.service';
 import { CorrectWrong } from '../../../models/correct-wrong.enum';
+import { EventService } from '../../../services/util/event.service';
 
 @Component({
   selector: 'app-moderator-comment-list',
@@ -55,7 +56,8 @@ export class ModeratorCommentListComponent implements OnInit {
     protected langService: LanguageService,
     private wsCommentService: WsCommentServiceService,
     protected roomService: RoomService,
-    protected voteService: VoteService
+    protected voteService: VoteService,
+    public eventService: EventService
   ) {
     langService.langEmitter.subscribe(lang => translateService.use(lang));
   }
diff --git a/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.html b/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.html
index 7bf34b687e5916014e4209b409db403eb13a5e02..8777583be336b642b9ca061a80c83dad0b68c3fa 100644
--- a/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.html
+++ b/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.html
@@ -2,6 +2,6 @@
     <div fxLayout="row" fxLayoutAlign="center">
       <app-moderator-comment-list [user]="user" [roomId]="roomId" comments></app-moderator-comment-list>
     </div>
-  </div>
-  
-  
\ No newline at end of file
+  <button id="live_announcer-button" tabIndex="-1" (click)="announce()" class="visually-hidden">{{ 'comment-page.live-announcer-moderation' | translate }}</button>
+</div>
+
diff --git a/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.ts b/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.ts
index c657955aef9625f20d1751d6e36796a147318ebb..aee8fc94e0a7e4216888e6cc800c25fd204e2a06 100644
--- a/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.ts
+++ b/src/app/components/moderator/moderator-comment-page/moderator-comment-page.component.ts
@@ -1,25 +1,77 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, Renderer2, OnDestroy, AfterContentInit } from '@angular/core';
 import { ActivatedRoute } from '@angular/router';
 import { User } from '../../../models/user';
 import { NotificationService } from '../../../services/util/notification.service';
 import { AuthenticationService } from '../../../services/http/authentication.service';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { EventService } from '../../../services/util/event.service';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-moderator-comment-page',
   templateUrl: './moderator-comment-page.component.html',
   styleUrls: ['./moderator-comment-page.component.scss']
 })
-export class ModeratorCommentPageComponent implements OnInit {
+export class ModeratorCommentPageComponent implements OnInit, OnDestroy, AfterContentInit {
   roomId: string;
   user: User;
 
+  listenerFn: () => void;
+
   constructor(private route: ActivatedRoute,
               private notification: NotificationService,
-              private authenticationService: AuthenticationService) { }
+              private authenticationService: AuthenticationService,
+              public eventService: EventService,
+              private _r: Renderer2,
+              private liveAnnouncer: LiveAnnouncer) { }
 
+  ngAfterContentInit(): void {
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 500);
+  }
   ngOnInit(): void {
     this.roomId = localStorage.getItem('roomId');
     this.user = this.authenticationService.getUser();
+    this.announce();
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit1) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('searchBox').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit3) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('sort-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit4) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('filter-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit8) === true && this.eventService.focusOnInput === false) {
+        this.liveAnnouncer.announce('Aktueller Sitzungs-' + document.getElementById('shortId-header').textContent);
+      } else if (
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit9, KeyboardKey.Escape) === true &&
+        this.eventService.focusOnInput === false) {
+        this.announce();
+      } else if (
+        document.getElementById('search_close-button') &&
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true &&
+        this.eventService.focusOnInput === true) {
+        document.getElementById('search_close-button').click();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true && this.eventService.focusOnInput === true) {
+        this.eventService.makeFocusOnInputFalse();
+        document.getElementById('sort-button').focus();
+      }
+    });
   }
 
+  ngOnDestroy() {
+    this.listenerFn();
+    this.eventService.makeFocusOnInputFalse();
+  }
+
+  public announce() {
+    this.liveAnnouncer.clear();
+    this.liveAnnouncer.announce('Du befindest dich auf der Moderations-Seite deiner Sitzung. ' +
+      'Drücke die Taste 2 um auf das Sitzungs-Menü zu gelangen, ' +
+      'die Taste 8 um den aktuellen Sitzungs-Code zu hören, oder die Taste 0 um zurück zur Benutzer-Seite zu gelangen. ' +
+      'Sobald mehrere Fragen vorhanden sind kannst du Fragen suchen und filtern. Mit Taste 1 gelangst du in das Suchfeld,' +
+      'durch drücken der Escape-Taste wird die Sucheingabe gelöscht. Drücke die Taste 3 um Fragen zu sortieren, ' +
+      'die Taste 4 um Fragen zu filtern, oder die Taste 9 um diese Ansage zu wiederholen.', 'assertive');
+  }
 }
diff --git a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html
index 441f58f2f96f49a5daba92956617ad6593df6c78..ac6e343c23dc4d7e0cad43f945c26ee933201b77 100644
--- a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html
+++ b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html
@@ -6,7 +6,7 @@
           <span class="fill-remaining-space"></span>
           <mat-card-header fxLayoutAlign="center">
             <mat-card-title fxLayoutAlign="center">
-              <h2>{{ room.name }}</h2>
+              <h1>{{ room.name }}</h1>
             </mat-card-title>
             <mat-card-subtitle fxLayoutAlign="center">
               <mat-icon *ngIf="moderationEnabled" class="gavel">
@@ -16,7 +16,7 @@
                 {{ 'room-page.session-id' | translate}}: {{ room.shortId.slice(0, 4) }} {{  room.shortId.slice(4, 8) }}
               </span>
               <button id="copy" mat-icon-button (click)="copyShortId()">
-                <mat-icon class="copy" matTooltip="{{ 'room-page.copy-session-id' | translate}}">cloud_download</mat-icon>
+                <mat-icon class="copy" matTooltip="{{ 'room-page.copy-session-id' | translate}}">save</mat-icon>
               </button>
             </mat-card-subtitle>
           </mat-card-header>
@@ -24,35 +24,42 @@
         </div>
         <mat-divider></mat-divider>
         <mat-card-content *ngIf="room.description" fxLayoutAlign="center">
-          <h4>{{room.description.trim()}}</h4>
+          <p>{{room.description.trim()}}</p>
         </mat-card-content>
-        <mat-grid-list cols="{{viewModuleCount}}" rowHeight="1:1">
+        <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
+          <mat-grid-list cols="{{viewModuleCount}}" rowHeight="1:1" *ngIf="viewModuleCount > 1">
             <mat-grid-tile>
-              <button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/comments">
+              <button id="question_answer-button"
+                      mat-icon-button [disableRipple]="true"
+                      routerLink="/moderator/room/{{ room.shortId }}/comments">
                 <mat-icon matBadge="{{commentCounter}}" class="main-icon"
                           [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer
                 </mat-icon>
-                <h3>{{ 'room-page.public-stream' | translate}}</h3>         <!-- *ngIf="deviceType === 'desktop'" -->
+                <h2>{{ 'room-page.public-stream' | translate}}</h2>
               </button>
             </mat-grid-tile>
             <mat-grid-tile *ngIf="moderationEnabled">
-              <button mat-icon-button routerLink="/moderator/room/{{ room.shortId }}/moderator/comments">
+              <button id="gavel-button"
+                      mat-icon-button [disableRipple]="true"
+                      routerLink="/moderator/room/{{ room.shortId }}/moderator/comments">
                 <mat-icon matBadge="{{moderatorCommentCounter}}" class="main-icon"
                           [ngClass]="{'desktop' : deviceType === 'desktop'}">gavel
                 </mat-icon>
-                <h3>{{ 'room-page.moderating-stream' | translate}}</h3>         <!-- *ngIf="deviceType === 'desktop'" -->
+                <h2>{{ 'room-page.moderating-stream' | translate}}</h2>
               </button>
             </mat-grid-tile>
-          <!--  <mat-grid-tile>
-              <button mat-icon-button routerLink="/participant/room/{{ room.shortId }}/feedback-barometer">
-                <mat-icon [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down</mat-icon>
-                <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.give-feedback' | translate}}</h3>
-              </button>
-            </mat-grid-tile> -->
         </mat-grid-list>
-  
-        <!-- <app-content-groups *ngIf="room && room.contentGroups" [contentGroups]="room.contentGroups"></app-content-groups> -->
+          <div fxLayout="row" fxLayoutAlign="center" *ngIf="viewModuleCount <= 1" class="question-button-div">
+            <button id="question_answer-button2" mat-icon-button [disableRipple]="true"
+                    routerLink="/creator/room/{{ room.shortId }}/comments" aria-labelledby="question_answer">
+              <mat-icon matBadge="{{commentCounter}}" class="main-icon"
+                        [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer</mat-icon>
+              <h2>{{ 'room-page.comments' | translate}}</h2>
+            </button>
+          </div>
+        </div>
       </mat-card>
-  
+
     </div>
-  </div>
+  <button id="live_announcer-button" tabIndex="-1" (click)="announce()" class="visually-hidden">{{ 'room-page.live-announcer' | translate }}</button>
+</div>
diff --git a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss
index 9059a41787c09efc940a67fba71da77e6a6874c9..9cace7ad4794cd2d9ff8be23003bab696313e5f7 100644
--- a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss
+++ b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss
@@ -1,16 +1,19 @@
 @import '../../../../styles';
 
 mat-card {
-  width: 800px;
+  width: 100%;
+  max-width: 800px;
   min-height: 350px;
+  max-height: 600px;
   background-color: var(--surface)!important;
+  margin-top: 5%;
 }
 
 mat-card-content > :first-child {
   margin: 3% 0 3% 0;
 }
 
-#description {
+#room-edit-description {
   margin-bottom: 0;
 }
 
@@ -71,28 +74,25 @@ mat-card-content > :first-child {
 }
 
 mat-grid-list {
-  margin-bottom: 5px !important;
+  margin: 0;
 }
 
 .second {
   margin-bottom: 20px !important;
 }
 
-h2 {
+h1 {
    font-size: large;
    color: var(--on-surface)!important;
  }
 
-h3 {
-  font-size: larger;
+p {
   color: var(--on-surface)!important;
-  margin: 5% 5% 0 0;
 }
 
-h4 {
-  font-size: medium;
+h2 {
+  font-size: larger;
   color: var(--on-surface)!important;
-  padding: 0 1% 0 1%;
 }
 
 mat-card-header {
@@ -135,3 +135,7 @@ mat-expansion-panel {
   margin: 5% 2% 0 0;
   color: var(--on-surface);
 }
+
+.question-button-div {
+  margin: 10% 0 10% 0;
+}
diff --git a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.ts b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.ts
index b123e904f44190c47740d4e9a6bf4c98c6809563..5449ff2679b7656b8a47d591023d955d0e0c52da 100644
--- a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.ts
+++ b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, Renderer2, OnDestroy, AfterContentInit } from '@angular/core';
 import { Room } from '../../../models/room';
 import { RoomPageComponent } from '../../shared/room-page/room-page.component';
 import { Location } from '@angular/common';
@@ -10,13 +10,17 @@ import { WsCommentServiceService } from '../../../services/websockets/ws-comment
 import { CommentService } from '../../../services/http/comment.service';
 import { Message } from '@stomp/stompjs';
 import { NotificationService } from '../../../services/util/notification.service';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { EventService } from '../../../services/util/event.service';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-room-moderator-page',
   templateUrl: './room-moderator-page.component.html',
   styleUrls: ['./room-moderator-page.component.scss']
 })
-export class RoomModeratorPageComponent extends RoomPageComponent implements OnInit {
+export class RoomModeratorPageComponent extends RoomPageComponent implements OnInit, OnDestroy, AfterContentInit {
 
   room: Room;
   isLoading = true;
@@ -24,6 +28,7 @@ export class RoomModeratorPageComponent extends RoomPageComponent implements OnI
   moderatorCommentCounter: number;
   viewModuleCount = 1;
 
+  listenerFn: () => void;
 
   constructor(protected location: Location,
               protected roomService: RoomService,
@@ -32,7 +37,10 @@ export class RoomModeratorPageComponent extends RoomPageComponent implements OnI
               protected langService: LanguageService,
               protected wsCommentService: WsCommentServiceService,
               protected commentService: CommentService,
-              protected notification: NotificationService) {
+              protected notification: NotificationService,
+              public eventService: EventService,
+              private liveAnnouncer: LiveAnnouncer,
+              private _r: Renderer2) {
     super(roomService, route, location, wsCommentService, commentService);
     langService.langEmitter.subscribe(lang => translateService.use(lang));
   }
@@ -83,12 +91,50 @@ export class RoomModeratorPageComponent extends RoomPageComponent implements OnI
     });
   }
 
+  ngAfterContentInit(): void {
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 700);
+  }
+
   ngOnInit() {
     window.scroll(0, 0);
     this.route.params.subscribe(params => {
       this.initializeRoom(params['roomId']);
     });
     this.translateService.use(localStorage.getItem('currentLang'));
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit1) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('question_answer-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit3) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('gavel-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit8) === true && this.eventService.focusOnInput === false) {
+        this.liveAnnouncer.clear();
+        this.liveAnnouncer.announce('Aktueller Sitzungs-Name: ' + this.room.name + '. ' +
+          'Aktueller Sitzungs-Code: ' + this.room.shortId.slice(0, 8));
+      } else if (
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit9, KeyboardKey.Escape) === true &&
+        this.eventService.focusOnInput === false) {
+        this.announce();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true && this.eventService.focusOnInput === true) {
+        this.eventService.makeFocusOnInputFalse();
+        document.getElementById('question_answer-button').focus();
+      }
+    });
+  }
+
+  ngOnDestroy() {
+    this.listenerFn();
+    this.eventService.makeFocusOnInputFalse();
+  }
+
+  public announce() {
+    this.liveAnnouncer.announce('Du befindest dich in der Sitzung in der du als Moderator gewählt wurdest. ' +
+      'Drücke die Taste 1 um auf die Fragen-Übersicht zu gelangen, ' +
+      'die Taste 2 um das Sitzungs-Menü zu öffnen, die Taste 3 um in die Moderationsübersicht zu gelangen, ' +
+      'die Taste 4 um Einstellungen an der Sitzung vorzunehmen, ' +
+      'die Taste 8 um den aktuellen Sitzungs-Code zu hören, die Taste 0 um auf den Zurück-Button zu gelangen, ' +
+      'oder die Taste 9 um diese Ansage zu wiederholen.', 'assertive');
   }
 
   copyShortId(): void {
diff --git a/src/app/components/participant/content-text-participant/content-text-participant.component.html b/src/app/components/participant/content-text-participant/content-text-participant.component.html
index 501cee9f7b800814bc796332579b6ba9e5d40ce5..5e98843971f32cc251a537c50f54370c7810b774 100644
--- a/src/app/components/participant/content-text-participant/content-text-participant.component.html
+++ b/src/app/components/participant/content-text-participant/content-text-participant.component.html
@@ -2,7 +2,8 @@
   <h1 class="mat-headline">{{ content.subject }}</h1>
   <mat-divider></mat-divider>
   <mat-form-field class="input-block">
-    <textarea matInput [(ngModel)]="textAnswer" name="answer" #answer placeholder="{{ 'answer.your-answer' | translate }}"></textarea>
+    <textarea (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+              matInput [(ngModel)]="textAnswer" name="answer" #answer placeholder="{{ 'answer.your-answer' | translate }}"></textarea>
   </mat-form-field>
   <div fxLayoutAlign="center" fxLayoutGap="20px" fxAlign="row">
     <button mat-raised-button type="submit" color="accent">{{ 'answer.submit' | translate }}</button>
diff --git a/src/app/components/participant/content-text-participant/content-text-participant.component.ts b/src/app/components/participant/content-text-participant/content-text-participant.component.ts
index d2e27c44e22828e6cdec0beca1ffb93fed19e05b..cdfffbb35935ee4da83e69f8614fd47a56e49a97 100644
--- a/src/app/components/participant/content-text-participant/content-text-participant.component.ts
+++ b/src/app/components/participant/content-text-participant/content-text-participant.component.ts
@@ -6,6 +6,7 @@ import { NotificationService } from '../../../services/util/notification.service
 import { TranslateService } from '@ngx-translate/core';
 import { LanguageService } from '../../../services/util/language.service';
 import { ContentType } from '../../../models/content-type.enum';
+import { EventService } from '../../../services/util/event.service';
 
 @Component({
   selector: 'app-content-text-participant',
@@ -20,7 +21,8 @@ export class ContentTextParticipantComponent implements OnInit {
   constructor(private answerService: ContentAnswerService,
               private notificationService: NotificationService,
               private translateService: TranslateService,
-              protected langService: LanguageService) {
+              protected langService: LanguageService,
+              public eventService: EventService) {
               langService.langEmitter.subscribe(lang => translateService.use(lang));
 }
 
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.html b/src/app/components/participant/room-participant-page/room-participant-page.component.html
index 469e8fd9d7db7edad084c4b6e0584c13ed323c28..1fb712bf0e2624966c795403c51f33008e63f6eb 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.html
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.html
@@ -6,15 +6,15 @@
         <span class="fill-remaining-space"></span>
         <mat-card-header fxLayoutAlign="center">
           <mat-card-title fxLayoutAlign="center">
-            <h2>{{ room.name }}</h2>
+            <h1>{{ room.name }}</h1>
           </mat-card-title>
           <mat-card-subtitle fxLayoutAlign="center">
             <mat-icon *ngIf="moderationEnabled" class="gavel">
               gavel
             </mat-icon>
-            <h3>
+            <h2>
               {{ 'room-page.session-id' | translate}}: {{ room.shortId.slice(0, 4) }} {{  room.shortId.slice(4, 8) }}
-            </h3>
+            </h2>
           </mat-card-subtitle>
         </mat-card-header>
         <span class="fill-remaining-space"></span>
@@ -24,21 +24,22 @@
       </div>
       <mat-divider></mat-divider>
       <mat-card-content *ngIf="room.description" fxLayoutAlign="center">
-        <h4>{{room.description.trim()}}</h4>
+        <p>{{room.description.trim()}}</p>
       </mat-card-content>
       <mat-grid-list cols="1" rowHeight="2:1">
         <mat-grid-tile>
-          <button mat-icon-button routerLink="/participant/room/{{ room.shortId }}/comments">
+          <button id="question_answer-button" mat-icon-button [disableRipple]="true"
+                  routerLink="/participant/room/{{ room.shortId }}/comments" aria-labelledby="question_answer">
             <mat-icon matBadge="{{commentCounter}}" matBadgeColor="primary" class="main-icon"
                       [ngClass]="{'desktop' : deviceType === 'desktop'}">question_answer
             </mat-icon>
-            <h3>{{ 'room-page.create-comment' | translate}}</h3>         <!-- *ngIf="deviceType === 'desktop'" -->
+            <h2>{{ 'room-page.create-comment' | translate}}</h2>         <!-- *ngIf="deviceType === 'desktop'" -->
           </button>
         </mat-grid-tile>
         <!--  <mat-grid-tile>
             <button mat-icon-button routerLink="/participant/room/{{ room.shortId }}/feedback-barometer">
               <mat-icon [ngClass]="{'desktop' : deviceType === 'desktop'}">thumbs_up_down</mat-icon>
-              <h3 *ngIf="deviceType === 'desktop'">{{ 'room-page.give-feedback' | translate}}</h3>
+              <h2 *ngIf="deviceType === 'desktop'">{{ 'room-page.give-feedback' | translate}}</h2>
             </button>
           </mat-grid-tile> -->
       </mat-grid-list>
@@ -47,4 +48,11 @@
     </mat-card>
 
   </div>
+  <button id="live_announcer-button" tabIndex="-1" (click)="announce()" class="visually-hidden">{{ 'room-page.live-announcer' | translate }}</button>
+</div>
+
+<!--Hidden Div's for a11y-Descriptions-->
+<div class="visually-hidden">
+  <div id="question_answer">{{'room-page.a11y-question_answer' | translate}}</div>
+  <!--<div id="announcer_text">{{'room-page.a11y-announcer' | translate}}</div>-->
 </div>
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.scss b/src/app/components/participant/room-participant-page/room-participant-page.component.scss
index ecba54d18f4c4e479cbb9cf4fc3892c576c3a205..0b09b02e58b785235701fcbaaea4189a1b8e6a53 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.scss
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.scss
@@ -40,21 +40,19 @@ button {
   }
 }
 
-h2 {
+h1 {
   font-size: large;
   color: var(--on-surface);
 }
 
-h3 {
+h2 {
   font-size: larger;
   color: var(--on-surface)!important;
   margin: 5% 0 5% 0;
 }
 
-h4 {
-  font-size: 15px;
+p {
   color: var(--on-surface)!important;
-  padding: 0 1% 0 1%;
 }
 
 mat-card-header {
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.ts b/src/app/components/participant/room-participant-page/room-participant-page.component.ts
index f4758e359ca77c34c33578ab0c71cbd5cf69e22a..78912bb65fc2a34105a7f2ed6f3193e0ebdbb8a5 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.ts
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, OnDestroy, Renderer2, AfterContentInit } from '@angular/core';
 import { Room } from '../../../models/room';
 import { User } from '../../../models/user';
 import { UserRole } from '../../../models/user-roles.enum';
@@ -11,19 +11,24 @@ import { LanguageService } from '../../../services/util/language.service';
 import { WsCommentServiceService } from '../../../services/websockets/ws-comment-service.service';
 import { CommentService } from '../../../services/http/comment.service';
 import { AuthenticationService } from '../../../services/http/authentication.service';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { EventService } from '../../../services/util/event.service';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-room-participant-page',
   templateUrl: './room-participant-page.component.html',
   styleUrls: ['./room-participant-page.component.scss']
 })
-export class RoomParticipantPageComponent extends RoomPageComponent implements OnInit {
+export class RoomParticipantPageComponent extends RoomPageComponent implements OnInit, OnDestroy, AfterContentInit {
 
   room: Room;
   isLoading = true;
   deviceType = localStorage.getItem('deviceType');
   user: User;
 
+  listenerFn: () => void;
 
   constructor(protected location: Location,
               protected roomService: RoomService,
@@ -32,17 +37,54 @@ export class RoomParticipantPageComponent extends RoomPageComponent implements O
               protected langService: LanguageService,
               protected wsCommentService: WsCommentServiceService,
               protected commentService: CommentService,
-              private authenticationService: AuthenticationService) {
+              private authenticationService: AuthenticationService,
+              private liveAnnouncer: LiveAnnouncer,
+              private _r: Renderer2,
+              public eventService: EventService) {
     super(roomService, route, location, wsCommentService, commentService);
     langService.langEmitter.subscribe(lang => translateService.use(lang));
   }
 
+  ngAfterContentInit(): void {
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 700);
+  }
+
   ngOnInit() {
     window.scroll(0, 0);
     this.route.params.subscribe(params => {
       this.initializeRoom(params['roomId']);
     });
     this.translateService.use(localStorage.getItem('currentLang'));
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit1) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('question_answer-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit8) === true && this.eventService.focusOnInput === false) {
+        this.liveAnnouncer.clear();
+        this.liveAnnouncer.announce('Aktueller Sitzungs-Code:' + this.room.shortId.slice(0, 8));
+      } else if (
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape, KeyboardKey.Digit9) === true && this.eventService.focusOnInput === false
+      ) {
+        this.announce();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true && this.eventService.focusOnInput === true) {
+        document.getElementById('question_answer-button').focus();
+        this.eventService.makeFocusOnInputFalse();
+      }
+    });
+  }
+
+  ngOnDestroy() {
+    this.listenerFn();
+    this.eventService.makeFocusOnInputFalse();
+  }
+
+  public announce() {
+    this.liveAnnouncer.clear();
+    this.liveAnnouncer.announce('Du befindest dich in der Sitzung mit dem von dir eingegebenen Sitzungs-Code. ' +
+      'Drücke die Taste 1 um eine Frage zu stellen, die Taste 2 für das Sitzungs-Menü, ' +
+      'die Taste 8 um den aktuellen Sitzungs-Code zu hören, die Taste 0 um auf den Zurück-Button zu gelangen, ' +
+      'oder die Taste 9 um diese Ansage zu wiederholen.', 'assertive');
   }
 
   afterRoomLoadHook() {
diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html
index 4665e71cc6f8e3bb689199759ecf9159a1816ca9..b65d87a60dbf82822f9ef7043ff843104c1785cb 100644
--- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html
+++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html
@@ -1,14 +1,18 @@
 <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
   <mat-form-field class="input-block">
-      <textarea matInput #commentBody matTextareaAutosize matAutosizeMinRows=5 matAutosizeMaxRows=10  maxlength="255"
-                [formControl]="bodyForm"></textarea>
+    <textarea (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()" matInput #commentBody matTextareaAutosize matAutosizeMinRows=5 matAutosizeMaxRows=10  maxlength="255"
+              [formControl]="bodyForm" aria-labelledby="ask-question-description"></textarea>
     <mat-placeholder class="placeholder">{{ 'comment-page.enter-comment' | translate}}</mat-placeholder>
-    <mat-hint align="end">{{commentBody.value.length}} / 255</mat-hint>
+    <mat-hint align="end"><span aria-hidden="true">{{commentBody.value.length}} / 255</span></mat-hint>
   </mat-form-field>
-  <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="20px">
-    <button mat-raised-button color="warn"
-            (click)="onNoClick()">{{ 'comment-page.abort' | translate}}</button>
-    <button mat-raised-button class="send"
-            (click)="closeDialog(commentBody.value)">{{ 'comment-page.send' | translate}}</button>
-  </div>
+</div>
+<app-dialog-action-buttons
+  buttonsLabelSection="comment-page"
+  confirmButtonLabel="send"
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildCreateCommentActionCallback(commentBody)"
+></app-dialog-action-buttons>
+
+<div class="visually-hidden">
+  <div id="ask-question-description">{{ 'comment-page.ask-question-description' | translate }}</div>
 </div>
diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts b/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts
index 42965ca081bc69f6dc45e385577ab0b87d538275..62f54c8aa1c51ef248f2d440fa4ed1a0dd4fa259 100644
--- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts
+++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.ts
@@ -6,7 +6,7 @@ import { TranslateService } from '@ngx-translate/core';
 import { FormControl, Validators } from '@angular/forms';
 import { User } from '../../../../models/user';
 import { CommentListComponent } from '../../comment-list/comment-list.component';
-
+import { EventService } from '../../../../services/util/event.service';
 
 @Component({
   selector: 'app-submit-comment',
@@ -28,6 +28,7 @@ export class CreateCommentComponent implements OnInit {
               private translateService: TranslateService,
               public dialog: MatDialog,
               private translationService: TranslateService,
+              public eventService: EventService,
               @Inject(MAT_DIALOG_DATA) public data: any) {
   }
 
@@ -60,4 +61,20 @@ export class CreateCommentComponent implements OnInit {
       this.dialogRef.close(comment);
     }
   }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.onNoClick();
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildCreateCommentActionCallback(text: HTMLInputElement): () => void {
+    return () => this.closeDialog(text.value);
+  }
 }
diff --git a/src/app/components/shared/_dialogs/delete-account/delete-account.component.html b/src/app/components/shared/_dialogs/delete-account/delete-account.component.html
index 4611f83d874878904afc9e45deec53b66932a8f5..17dbe121e85ecd60f8dd26183201c468574014d7 100644
--- a/src/app/components/shared/_dialogs/delete-account/delete-account.component.html
+++ b/src/app/components/shared/_dialogs/delete-account/delete-account.component.html
@@ -1,16 +1,17 @@
 <div mat-dialog-content>
-  <h3>{{ 'header.sure' | translate }}</h3>
-  <mat-divider></mat-divider>
-  <p>{{ 'header.really-delete-account' | translate }}</p>
-  <ul *ngFor="let room of rooms">
-    <li>{{ room.name }}</li>
-  </ul>
-  <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
-    <button mat-raised-button class="abort" (click)="close('abort')">
-      {{ 'header.abort' | translate }}
-    </button>
-    <button mat-raised-button class="delete" (click)="close('delete')">
-      {{ 'header.delete' | translate }}
-    </button>
+  <div style="overflow-y: scroll; max-height: 15rem">
+    <h2>{{ 'header.sure' | translate }}</h2>
+    <mat-divider></mat-divider>
+    <p>{{ 'header.really-delete-account' | translate }}</p>
+    <ul *ngFor="let room of rooms">
+      <li>{{ room.name }}</li>
+    </ul>
   </div>
+  <app-dialog-action-buttons
+    buttonsLabelSection="delete-account"
+    confirmButtonLabel="delete"
+    [confirmButtonType]=confirmButtonType
+    [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+    [confirmButtonClickAction]="buildDeleteAccountActionCallback()"
+  ></app-dialog-action-buttons>
 </div>
diff --git a/src/app/components/shared/_dialogs/delete-account/delete-account.component.scss b/src/app/components/shared/_dialogs/delete-account/delete-account.component.scss
index 58f145905e35e7ec71b5c5f4a30fa6e7317e21fe..6995c25db95264da22331f5123ed5774091316fd 100644
--- a/src/app/components/shared/_dialogs/delete-account/delete-account.component.scss
+++ b/src/app/components/shared/_dialogs/delete-account/delete-account.component.scss
@@ -7,20 +7,10 @@ p {
   margin-bottom: 0;
 }
 
-button {
-  margin-top: 10px;
-}
-
-.delete {
-  background-color: var(--red);
-  color: var(--on-secondary);
-}
-
-.abort {
-  background-color: var(--secondary);
-  color: var(--on-secondary);
+li {
+  color: var(--on-surface);
 }
 
-li {
+h1,h2,h3,h4,h5,p{
   color: var(--on-surface);
 }
diff --git a/src/app/components/shared/_dialogs/delete-account/delete-account.component.ts b/src/app/components/shared/_dialogs/delete-account/delete-account.component.ts
index 3e303b59047bda82064ae64db3d29ae6d3e91fdd..6fb53456ebf33c9e17844077e8d86f4cef28bafc 100644
--- a/src/app/components/shared/_dialogs/delete-account/delete-account.component.ts
+++ b/src/app/components/shared/_dialogs/delete-account/delete-account.component.ts
@@ -3,6 +3,9 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
 import { RoomEditComponent } from '../../../creator/_dialogs/room-edit/room-edit.component';
 import { RoomService } from '../../../../services/http/room.service';
 import { Room } from '../../../../models/room';
+import { DialogConfirmActionButtonType } from '../../dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { TranslateService } from '@ngx-translate/core';
 
 @Component({
   selector: 'app-delete-account',
@@ -13,25 +16,60 @@ export class DeleteAccountComponent implements OnInit {
 
   rooms: Room[];
 
+
+  /**
+   * The confirm button type of the delete account.
+   */
+  confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Alert;
+
+
   constructor(public dialogRef: MatDialogRef<RoomEditComponent>,
               @Inject(MAT_DIALOG_DATA) public data: any,
-              private roomService: RoomService) { }
+              private roomService: RoomService,
+              private liveAnnouncer: LiveAnnouncer,
+              private translationService: TranslateService, ) { }
 
   ngOnInit() {
+    this.announce();
     this.roomService.getCreatorRooms().subscribe(rooms => {
-      this.rooms = rooms;
-      this.sortRooms();
+      this.rooms = rooms.sort((a, b) => {
+        return a.name.toLowerCase() > b.name.toLowerCase() ? 1 : -1;
+      });
     });
   }
 
+  public announce() {
+    const lang: string = this.translationService.currentLang;
+
+    // current live announcer content must be cleared before next read
+    this.liveAnnouncer.clear();
+
+    if (lang === 'de') {
+      this.liveAnnouncer.announce('Willst du dein Konto mit allen Sitzungen unwiderruflich löschen?', 'assertive');
+    } else {
+      this.liveAnnouncer.announce('Do you really want to irrevocably delete your account with the associated sessions?', 'assertive');
+    }
+
+  }
+
+
   close(type: string): void {
     this.dialogRef.close(type);
   }
 
-  sortRooms() {
-    const roomList = this.rooms.sort((a, b) => {
-      return a.name > b.name ? 1 : -1;
-    });
-    this.rooms = roomList;
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.close('abort');
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildDeleteAccountActionCallback(): () => void {
+    return () => this.close('delete');
   }
 }
diff --git a/src/app/components/shared/_dialogs/help-page/help-page.component.html b/src/app/components/shared/_dialogs/help-page/help-page.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..5a483dd02e258456ba86aca7f8bc9f2e82d5b790
--- /dev/null
+++ b/src/app/components/shared/_dialogs/help-page/help-page.component.html
@@ -0,0 +1,18 @@
+<div>
+
+    <h1 tabindex="0" class="modal" mat-dialog-title>{{ 'help.title' | translate }} </h1>
+
+  <mat-divider></mat-divider>
+  <mat-dialog-content tabindex="0">
+    <app-help-en *ngIf="currentLang=='en'"></app-help-en>
+    <app-help-de *ngIf="currentLang=='de'"></app-help-de>
+  </mat-dialog-content>
+  <mat-divider></mat-divider>
+
+  <app-dialog-action-buttons
+    buttonsLabelSection="help"
+    [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  ></app-dialog-action-buttons>
+
+</div>
+
diff --git a/src/app/components/shared/_dialogs/help-page/help-page.component.scss b/src/app/components/shared/_dialogs/help-page/help-page.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..05e8f700d4afbd5c9251a2d996db296d85745412
--- /dev/null
+++ b/src/app/components/shared/_dialogs/help-page/help-page.component.scss
@@ -0,0 +1,18 @@
+h1 {
+  font-size: 2em;
+}
+
+h2 {
+  font-size: large;
+}
+
+div {
+  font-family: Roboto, "Helvetica Neue", sans-serif;
+  color: var(--on-surface);
+}
+
+.mat-raised-button {
+  background-color: var(--primary);
+  color: var(--on-primary);
+}
+
diff --git a/src/app/components/shared/_dialogs/help-page/help-page.component.spec.ts b/src/app/components/shared/_dialogs/help-page/help-page.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..cfb8d2fae4e1c4350d13971100f5f085f340ec01
--- /dev/null
+++ b/src/app/components/shared/_dialogs/help-page/help-page.component.spec.ts
@@ -0,0 +1,26 @@
+/**import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { HelpPageComponent } from './help-page.component';
+
+describe('HelpComponent', () => {
+  let component: HelpPageComponent;
+  let fixture: ComponentFixture<HelpPageComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ HelpPageComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(HelpPageComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
+ **/
diff --git a/src/app/components/shared/_dialogs/help-page/help-page.component.ts b/src/app/components/shared/_dialogs/help-page/help-page.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b46bf5cb1311e8df61713d8a17f2a66822f39a88
--- /dev/null
+++ b/src/app/components/shared/_dialogs/help-page/help-page.component.ts
@@ -0,0 +1,30 @@
+import { Component, OnInit } from '@angular/core';
+import { DialogConfirmActionButtonType } from '../../dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { MatDialogRef } from '@angular/material';
+
+@Component({
+  selector: 'app-help',
+  templateUrl: './help-page.component.html',
+  styleUrls: ['./help-page.component.scss']
+})
+export class HelpPageComponent implements OnInit {
+
+  deviceType: string;
+  currentLang: string;
+
+  constructor(private dialogRef: MatDialogRef<HelpPageComponent>) {
+  }
+
+  ngOnInit() {
+    this.currentLang = localStorage.getItem('currentLang');
+  }
+
+
+  close(type: string): void {
+    this.dialogRef.close(type);
+  }
+
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.close('abort');
+  }
+}
diff --git a/src/app/components/shared/_dialogs/present-comment/present-comment.component.html b/src/app/components/shared/_dialogs/present-comment/present-comment.component.html
index 9a210632eddbe49abbc0ee80d0b10cb2bf4afe85..5bfbc7f7d629e43f4be6b323cacffe16a7ff0afb 100644
--- a/src/app/components/shared/_dialogs/present-comment/present-comment.component.html
+++ b/src/app/components/shared/_dialogs/present-comment/present-comment.component.html
@@ -8,7 +8,7 @@
     <mat-icon>zoom_in</mat-icon>
   </div>
 </div>
-<button id="exitButton" mat-raised-button (click)="onCloseClick()">
+<button id="exitButton" mat-raised-button (click)="onCloseClick()" aria-labelledby="exit-description">
   <mat-icon >exit_to_app</mat-icon>
 </button>
 <div id="comment">
@@ -16,3 +16,7 @@
     {{body}}
   </p>
 </div>
+
+<div class="visually-hidden">
+  <div id="exit-description">{{ 'comment-page.exit-description' | translate}}</div>
+</div>
diff --git a/src/app/components/shared/_dialogs/present-comment/present-comment.component.scss b/src/app/components/shared/_dialogs/present-comment/present-comment.component.scss
index 824d4a185116e99ef0b55b4964c6004e8278185d..f6921ab216c2e0f85d0cf264f186b6a29366026b 100644
--- a/src/app/components/shared/_dialogs/present-comment/present-comment.component.scss
+++ b/src/app/components/shared/_dialogs/present-comment/present-comment.component.scss
@@ -3,7 +3,7 @@
   flex-direction: column;
   justify-content: center;
   text-align: left;
-  min-height: 90vh;
+  max-height: 90vh;
   font-size: 2.1em;
   margin: 5%;
   white-space: pre-line;
@@ -21,18 +21,14 @@
 }
 
 #exitButton {
-  background-color: var(--red);
-  color: white;
+  background-color: var(--secondary);
+  color: var(--on-secondary);
   position:absolute;
   top:2em;
   right:2em;
   max-height: 100px;
 }
 
-mat-icon {
-  color: var(--on-surface);
-}
-
 ::ng-deep .mat-accent .mat-slider-thumb {
   background-color: var(--on-surface);
 }
diff --git a/src/app/components/shared/_dialogs/present-comment/present-comment.component.ts b/src/app/components/shared/_dialogs/present-comment/present-comment.component.ts
index 341a9423b19442f593b6654644a1cc8aa8463707..317c55f2344a43884a95301b4d43d8d5c045cfa0 100644
--- a/src/app/components/shared/_dialogs/present-comment/present-comment.component.ts
+++ b/src/app/components/shared/_dialogs/present-comment/present-comment.component.ts
@@ -2,6 +2,8 @@ import { Component, OnInit, HostListener, Inject } from '@angular/core';
 import { MatDialog, MatDialogRef } from '@angular/material';
 import { TranslateService } from '@ngx-translate/core';
 import { DOCUMENT } from '@angular/common';
+import { KeyboardUtils } from '../../../../utils/keyboard';
+import { KeyboardKey } from '../../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-present-comment',
@@ -12,7 +14,6 @@ export class PresentCommentComponent implements OnInit {
   public body: string;
   // flag for fullscreen
   private fs = false;
-  private ESCAPE_KEYCODE = 27;
 
   constructor(
     @Inject(DOCUMENT) private document: Document,
@@ -35,7 +36,8 @@ export class PresentCommentComponent implements OnInit {
 
   @HostListener('document:keyup', ['$event'])
   onKeyUp(event: KeyboardEvent) {
-    if (event.keyCode === this.ESCAPE_KEYCODE) {
+    // ToDo: migrate from deprecated event api
+    if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true) {
       this.onCloseClick();
     }
   }
diff --git a/src/app/components/shared/_dialogs/room-create/room-create.component.html b/src/app/components/shared/_dialogs/room-create/room-create.component.html
index cc30ca3e6a516dadf2c0c5df2252745f04185e1f..04f50c8bd9b52ddfde92c3ab96b41567d4340744 100644
--- a/src/app/components/shared/_dialogs/room-create/room-create.component.html
+++ b/src/app/components/shared/_dialogs/room-create/room-create.component.html
@@ -1,12 +1,22 @@
 <form (ngSubmit)="addRoom(roomName.value)">
   <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="10px">
     <mat-form-field>
-      <input (keypress)="resetEmptyInputs()" matInput #roomName class="input-block" type="text"
-             placeholder="{{ 'session.session-name' | translate}}" maxlength="20" [(ngModel)]="longName" name="roomName"/>
-      <mat-hint align="end" class="count" *ngIf="!emptyInputs">{{roomName.value.length}} / 20</mat-hint>
+      <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()" (keypress)="resetEmptyInputs()" matInput #roomName class="input-block" type="text"
+             maxlength="20" [(ngModel)]="longName"
+             name="roomName" aria-labelledby="room-name-input"/>
+      <mat-placeholder class="placeholder">{{ 'session.session-name' | translate }}</mat-placeholder>
+      <mat-hint align="end" class="count" *ngIf="!emptyInputs"><span aria-hidden="true">{{roomName.value.length}} / 20</span></mat-hint>
       <mat-hint align="start" class="error" *ngIf="emptyInputs"><strong>{{ 'home-page.no-empty-name' | translate }}</strong></mat-hint>
     </mat-form-field>
-    <button mat-raised-button type="submit">{{ 'session.create-session' | translate}}
-    </button>
   </div>
 </form>
+<app-dialog-action-buttons
+  buttonsLabelSection="room-create"
+  confirmButtonLabel="create-room"
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+  [confirmButtonClickAction]="buildRoomCreateActionCallback(roomName)"
+></app-dialog-action-buttons>
+
+<div class="visually-hidden">
+  <div id="room-name-input">{{ 'home-page.room-name-input' | translate }}</div>
+</div>
diff --git a/src/app/components/shared/_dialogs/room-create/room-create.component.scss b/src/app/components/shared/_dialogs/room-create/room-create.component.scss
index dc09b64248bdf4663bd21c17b0b445bc16a2d492..1aa550dc36fe0212ab94e24622639d1e3b6a1291 100644
--- a/src/app/components/shared/_dialogs/room-create/room-create.component.scss
+++ b/src/app/components/shared/_dialogs/room-create/room-create.component.scss
@@ -1,8 +1,3 @@
-.mat-raised-button {
-  background-color: var(--primary);
-  color: var(--on-primary);
-}
-
 input {
   color: var(--on-surface);
 }
@@ -34,3 +29,11 @@ mat-form-field {
 .error {
   color: var(--red) !important;
 }
+
+.visually-hidden {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  left: -10000px;
+}
diff --git a/src/app/components/shared/_dialogs/room-create/room-create.component.ts b/src/app/components/shared/_dialogs/room-create/room-create.component.ts
index 5ba8ca0610ec22a2c761165c8a83a9c9aca62b83..8b476eabacae2bea9bb4adc3eb72e79fadef032b 100644
--- a/src/app/components/shared/_dialogs/room-create/room-create.component.ts
+++ b/src/app/components/shared/_dialogs/room-create/room-create.component.ts
@@ -9,6 +9,7 @@ import { ContentService } from '../../../../services/http/content.service';
 import { AuthenticationService } from '../../../../services/http/authentication.service';
 import { TranslateService } from '@ngx-translate/core';
 import { TSMap } from 'typescript-map';
+import { EventService } from '../../../../services/util/event.service';
 
 @Component({
   selector: 'app-room-create',
@@ -29,6 +30,7 @@ export class RoomCreateComponent implements OnInit {
     public dialogRef: MatDialogRef<RoomCreateComponent>,
     private translateService: TranslateService,
     private authService: AuthenticationService,
+    public eventService: EventService,
     @Inject(MAT_DIALOG_DATA) public data: any
   ) {
   }
@@ -65,7 +67,31 @@ export class RoomCreateComponent implements OnInit {
       this.authService.setAccess(room.shortId, UserRole.CREATOR);
       this.authService.assignRole(UserRole.CREATOR);
       this.router.navigate([`/creator/room/${this.room.shortId}`]);
-      this.dialogRef.close();
+      this.closeDialog();
     });
   }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.closeDialog();
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildRoomCreateActionCallback(room: HTMLInputElement): () => void {
+    return () => this.addRoom(room.value);
+  }
+
+
+  /**
+   * Closes the room create dialog on call.
+   */
+  closeDialog(): void {
+    this.dialogRef.close();
+  }
 }
diff --git a/src/app/components/shared/comment-list/comment-list.component.html b/src/app/components/shared/comment-list/comment-list.component.html
index 78e62eaf1e9e5e3cb28d407648671f65c727594f..1bbcc931f61b883c481626c181b9d8dcfec9b32c 100644
--- a/src/app/components/shared/comment-list/comment-list.component.html
+++ b/src/app/components/shared/comment-list/comment-list.component.html
@@ -3,11 +3,12 @@
   <mat-label *ngIf="deviceType === 'desktop'" fxLayoutAlign="center center">
     <mat-icon class="search-icon">search</mat-icon>
   </mat-label>
-  <input #searchBox id="searchBox" [ngClass]="{'desktop-input': deviceType === 'desktop',
+  <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()" #searchBox id="searchBox" [ngClass]="{'desktop-input': deviceType === 'desktop',
    'mobile-input': deviceType === 'mobile' && !search, 'mobile-input-2': deviceType === 'mobile' && search }"
-         [placeholder]="searchPlaceholder" (input)="searchComments()" [(ngModel)]="searchInput">
-  <button mat-icon-button class="searchBarButton close" *ngIf="searchInput !== '' || search"
-          (click)="hideCommentsList=false; searchInput = ''; search = false; searchPlaceholder = '';">
+         (input)="searchComments()" [(ngModel)]="searchInput" [placeholder]="searchPlaceholder"
+         aria-labelledby="search-box-input-description">
+  <button id="search_close-button" mat-icon-button class="searchBarButton close" *ngIf="searchInput !== '' || search"
+          (click)="hideCommentsList=false; searchInput = ''; search = false; searchPlaceholder = '';" aria-labelledby="close_search">
     <mat-icon>close</mat-icon>
   </button>
 
@@ -18,69 +19,90 @@
     </div>
 
     <button mat-icon-button class="searchBarButton" (click)="activateSearch()"
-            *ngIf="deviceType === 'mobile' && !search && comments && comments.length > 0 && !search">
+            *ngIf="deviceType === 'mobile' && !search && comments && comments.length > 0">
       <mat-icon class="searchBarIcon">search</mat-icon>
     </button>
 
-    <button mat-icon-button class="searchBarButton"
+    <button id="sort-button" mat-icon-button class="searchBarButton" aria-labelledby="swap_vert"
             *ngIf="!searchBox.value && comments && comments.length > 0 && !search"
             [matMenuTriggerFor]="sortMenu" matTooltip="{{ 'comment-list.sort-comments' | translate }}">
       <mat-icon class="searchBarIcon">swap_vert</mat-icon>
     </button>
 
-    <button mat-icon-button class="searchBarButton"
+    <button id="filter-button" mat-icon-button class="searchBarButton" aria-labelledby="filter_list"
             *ngIf="!searchBox.value && comments && comments.length > 0 && !search"
             [matMenuTriggerFor]="filterMenu" matTooltip="{{ 'comment-list.filter-comments' | translate }}">
       <mat-icon class="searchBarIcon">filter_list</mat-icon>
     </button>
 
-    <button mat-fab class="addButton" *ngIf="!searchBox.value && !search" (click)="openCreateDialog()"
+    <button id="pause-comments" mat-fab aria-labelledby="pause" class="actionButton"
+            *ngIf="!searchBox.value && !search && !freeze" (click)="pauseCommentStream()"
+            matTooltip="{{ 'comment-list.pause-comments' | translate }}">
+      <mat-icon class="freezeIcon">pause</mat-icon>
+    </button>
+
+    <button id="play-comments" mat-fab aria-labelledby="play" class="actionButton"
+            *ngIf="!searchBox.value && !search && freeze" (click)="playCommentStream()"
+            matTooltip="{{ 'comment-list.play-comments' | translate }}">
+      <mat-icon class="freezeIcon">play_arrow</mat-icon>
+    </button>
+
+    <button id="add_comment_small-button" mat-fab aria-labelledby="add" class="actionButton" *ngIf="!searchBox.value && !search" (click)="openCreateDialog()"
             matTooltip="{{ 'comment-list.add-comment' | translate }}">
-      <mat-icon class="addCommentIcon">add</mat-icon>
+      <mat-icon class="actionIcon">add</mat-icon>
     </button>
   </div>
 
   <mat-menu #sortMenu="matMenu" xPosition="before">
-    <button mat-icon-button matTooltip="{{ 'comment-list.vote-desc' | translate }}"
-            (click)="sortComments(votedesc)">
+    <button mat-menu-item matTooltip="{{ 'comment-list.vote-asc' | translate }}"
+            (click)="sortComments(votedesc)" aria-labelledby="keyboard_arrow_up">
       <mat-icon [ngClass]="{votedesc: 'up'}[currentSort]">keyboard_arrow_up</mat-icon>
+      <span>{{ 'comment-list.sort-vote-asc' | translate }}</span>
     </button>
 
-    <button mat-icon-button matTooltip="{{ 'comment-list.vote-asc' | translate }}"
-            (click)="sortComments(voteasc)">
+    <button mat-menu-item matTooltip="{{ 'comment-list.vote-desc' | translate }}"
+            (click)="sortComments(voteasc)" aria-labelledby="keyboard_arrow_down">
       <mat-icon [ngClass]="{voteasc: 'down'}[currentSort]">keyboard_arrow_down</mat-icon>
+      <span>{{ 'comment-list.sort-vote-desc' | translate }}</span>
     </button>
 
-    <button mat-icon-button matTooltip="{{ 'comment-list.time' | translate }}"
-            (click)="sortComments(time)">
+    <button mat-menu-item matTooltip="{{ 'comment-list.time' | translate }}"
+            (click)="sortComments(time)" aria-labelledby="access_time">
       <mat-icon [ngClass]="{time: 'unread-icon'}[currentSort]">access_time</mat-icon>
+      <span>{{ 'comment-list.sort-list-time' | translate }}</span>
     </button>
   </mat-menu>
 
   <mat-menu #filterMenu="matMenu" xPosition="before">
     <div>
-      <button mat-icon-button (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.correct' | translate }}"
-              (click)="filterComments(correct)">
+      <button mat-menu-item (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.correct' | translate }}"
+              (click)="filterComments(correct)" aria-labelledby="check_circle">
         <mat-icon [ngClass]="{correct: 'correct-icon'}[currentFilter]">check_circle</mat-icon>
+        <span>{{ 'comment-list.filter-correct' | translate }}</span>
       </button>
 
-      <button mat-icon-button (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.wrong' | translate }}"
-              (click)="filterComments(wrong)">
+      <button mat-menu-item (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.wrong' | translate }}"
+              (click)="filterComments(wrong)" aria-labelledby="not_interested">
         <mat-icon [ngClass]="{wrong: 'wrong-icon'}[currentFilter]">not_interested</mat-icon>
+        <span>{{ 'comment-list.filter-wrong' | translate }}</span>
       </button>
 
-      <button mat-icon-button (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.favorite' | translate }}"
-              (click)="filterComments(favorite)">
+      <button mat-menu-item (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.favorite' | translate }}"
+              (click)="filterComments(favorite)" aria-labelledby="grade">
         <mat-icon [ngClass]="{favorite: 'favorite-icon'}[currentFilter]">grade</mat-icon>
+        <span>{{ 'comment-list.filter-favorite' | translate }}</span>
       </button>
 
-      <button mat-icon-button (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.read' | translate }}"
-              (click)="filterComments(read)">
+      <button mat-menu-item (focus)="hideCommentsList=true" matTooltip="{{ 'comment-list.read' | translate }}"
+              (click)="filterComments(read)" aria-labelledby="beamer_icon">
         <mat-icon svgIcon="beamer" [ngClass]="{read: 'beamer-icon'}[currentFilter]"></mat-icon>
+        <span>{{ 'comment-list.filter-read' | translate }}</span>
       </button>
 
-      <button mat-icon-button (focus)="hideCommentsList=false" (click)="sortComments(currentSort); filterComments('')">
+      <button mat-menu-item (focus)="hideCommentsList=false" (click)="sortComments(currentSort); filterComments('')"
+              aria-labelledby="close">
         <mat-icon>close</mat-icon>
+        <span>{{ 'comment-list.filter-reset' | translate }}</span>
       </button>
     </div>
   </mat-menu>
@@ -91,7 +113,7 @@
 </button>
 
 <div fxLayout="row" fxLayoutAlign="center" *ngIf="comments.length < 3 && !isLoading">
-  <button mat-fab class="fab-extended" (click)="openCreateDialog()">
+  <button id="add_comment-button" mat-fab class="fab-extended" (click)="openCreateDialog()" aria-labelledby="add">
     <mat-icon class="add">add</mat-icon>
     {{'comment-list.add-comment' | translate}}
   </button>
@@ -104,5 +126,27 @@
 
 <div *ngIf="comments && comments.length < 1 && !isLoading" fxLayout="row" fxLayoutAlign="center center"
      class="no-comments">
-  <h4>{{ 'comment-page.no-comments' | translate }}</h4>
+  <p>{{ 'comment-page.no-comments' | translate }}</p>
+</div>
+
+<!--Hidden Div's for a11y-Descriptions-->
+<div class="visually-hidden">
+  <div id="search-box-input-description">
+    {{ 'comment-page.search-box-input-description' | translate }}
+  </div>
+  <div id="swap_vert">{{'comment-list.a11y-swap_vert' | translate}}</div>
+  <div id="keyboard_arrow_up">{{'comment-list.a11y-keyboard_arrow_up' | translate}}</div>
+  <div id="keyboard_arrow_down">{{'comment-list.a11y-keyboard_arrow_down' | translate}}</div>
+  <div id="access_time">{{'comment-list.a11y-access_time' | translate}}</div>
+  <div id="filter_list">{{'comment-list.a11y-filter_list' | translate}}</div>
+  <div id="check_circle">{{'comment-list.a11y-check_circle' | translate}}</div>
+  <div id="not_interested">{{'comment-list.a11y-not_interested' | translate}}</div>
+  <div id="grade">{{'comment-list.a11y-grade' | translate}}</div>
+  <div id="beamer_icon">{{'comment-list.a11y-beamer_icon' | translate}}</div>
+  <div id="close">{{'comment-list.a11y-close' | translate}}</div>
+  <div id="add">{{'comment-list.a11y-add' | translate}}</div>
+  <div id="pause">{{'comment-list.a11y-pause' | translate}}</div>
+  <div id="play">{{'comment-list.a11y-play' | translate}}</div>
+  <div id="close_search">{{'comment-list.a11y-close_search' | translate}}</div>
+  <div id="new-comment">{{ 'comment-page.new-comment' | translate:{comment: newestComment} }}</div>
 </div>
diff --git a/src/app/components/shared/comment-list/comment-list.component.scss b/src/app/components/shared/comment-list/comment-list.component.scss
index aaa55ccd0568872efe117a5ab85236ec1c2062b0..f5b1dc46f61a0445e6731018308459f195329814 100644
--- a/src/app/components/shared/comment-list/comment-list.component.scss
+++ b/src/app/components/shared/comment-list/comment-list.component.scss
@@ -11,7 +11,7 @@ app-comment {
 #searchBox {
   box-sizing: border-box;
   padding: 0 10px 0 5px;
-  background-color: var(--dialog);
+  background-color: var(--background);
   border: none;
   outline: none;
   min-height: 60px;
@@ -36,13 +36,13 @@ app-comment {
 
 .search-container {
   border-radius: 5px;
-  background-color: var(--dialog);
+  background-color: var(--background);
   margin-bottom: 2%;
 }
 
 .search-container-fixed {
   border-radius: 5px;
-  background-color: var(--dialog);
+  background-color: var(--background);
   margin-bottom: 2%;
   position: fixed;
   top: 10px;
@@ -64,18 +64,23 @@ app-comment {
   color: var(--secondary);
 }
 
-.addButton {
+.actionButton {
   width: 40px;
   height: 40px;
   margin: 0 5% 0 5%;
   background-color: var(--primary);
 }
 
-.addCommentIcon {
+.actionIcon {
   transform: scale(1.5);
   color: var(--surface)
 }
 
+.freezeIcon {
+  transform: scale(1.3);
+  color: var(--surface);
+}
+
 .close {
   margin: 5px 0 5px 0;
 }
@@ -92,8 +97,8 @@ app-comment {
   margin-top: 10%;
 }
 
-h4  {
-  color: var(--on-surface);
+p  {
+  color: var(--on-surface) !important;
 }
 
 .button-bar {
diff --git a/src/app/components/shared/comment-list/comment-list.component.ts b/src/app/components/shared/comment-list/comment-list.component.ts
index e6c8b65ba6e5f895d9bc042227a1f42b13b122ee..45bf1a4bc90443258026753bf51968a52d9e2c24 100644
--- a/src/app/components/shared/comment-list/comment-list.component.ts
+++ b/src/app/components/shared/comment-list/comment-list.component.ts
@@ -15,6 +15,9 @@ import { RoomService } from '../../../services/http/room.service';
 import { VoteService } from '../../../services/http/vote.service';
 import { NotificationService } from '../../../services/util/notification.service';
 import { CorrectWrong } from '../../../models/correct-wrong.enum';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { EventService } from '../../../services/util/event.service';
+import { Subscription } from 'rxjs';
 
 @Component({
   selector: 'app-comment-list',
@@ -51,6 +54,9 @@ export class CommentListComponent implements OnInit {
   searchPlaceholder = '';
   moderationEnabled = false;
   thresholdEnabled = false;
+  newestComment: string;
+  freeze = false;
+  commentStream: Subscription;
 
   constructor(private commentService: CommentService,
               private translateService: TranslateService,
@@ -59,7 +65,9 @@ export class CommentListComponent implements OnInit {
               private wsCommentService: WsCommentServiceService,
               protected roomService: RoomService,
               protected voteService: VoteService,
-              private notificationService: NotificationService
+              private notificationService: NotificationService,
+              public eventService: EventService,
+              public liveAnnouncer: LiveAnnouncer
   ) {
     langService.langEmitter.subscribe(lang => translateService.use(lang));
   }
@@ -68,21 +76,22 @@ export class CommentListComponent implements OnInit {
     this.roomId = localStorage.getItem(`roomId`);
     const userId = this.user.id;
     this.userRole = this.user.role;
+    this.currentSort = this.votedesc;
     this.roomService.getRoom(this.roomId).subscribe( room => {
       this.room = room;
       if (this.room && this.room.extensions && this.room.extensions['comments']) {
-        if (this.room.extensions['comments'].commentThreshold !== null) {
-          this.thresholdEnabled = true;
-        }
         if (this.room.extensions['comments'].enableModeration !== null) {
           this.moderationEnabled = this.room.extensions['comments'].enableModeration;
         }
       }
+      this.commentService.getAckComments(this.roomId)
+        .subscribe(comments => {
+          this.comments = comments;
+          this.getComments();
+        });
     });
     this.hideCommentsList = false;
-    this.wsCommentService.getCommentStream(this.roomId).subscribe((message: Message) => {
-      this.parseIncomingMessage(message);
-    });
+    this.subscribeCommentStream();
     this.translateService.use(localStorage.getItem('currentLang'));
     this.deviceType = localStorage.getItem('deviceType');
     if (this.userRole === 0) {
@@ -92,15 +101,12 @@ export class CommentListComponent implements OnInit {
         }
       });
     }
-    this.currentSort = this.votedesc;
-    this.commentService.getAckComments(this.roomId)
-      .subscribe(comments => {
-        this.comments = comments;
-        this.getComments();
-      });
     this.translateService.get('comment-list.search').subscribe(msg => {
       this.searchPlaceholder = msg;
     });
+    if (this.userRole === UserRole.PARTICIPANT) {
+      this.openCreateDialog();
+    }
   }
 
   checkScroll(): void {
@@ -114,9 +120,13 @@ export class CommentListComponent implements OnInit {
   }
 
   searchComments(): void {
-    if (this.searchInput && this.searchInput.length > 2) {
-      this.hideCommentsList = true;
-      this.filteredComments = this.comments.filter(c => c.body.toLowerCase().includes(this.searchInput.toLowerCase()));
+    if (this.searchInput) {
+      if (this.searchInput.length > 2) {
+        this.hideCommentsList = true;
+        this.filteredComments = this.comments.filter(c => c.body.toLowerCase().includes(this.searchInput.toLowerCase()));
+      }
+    } else {
+      this.hideCommentsList = false;
     }
   }
 
@@ -129,8 +139,15 @@ export class CommentListComponent implements OnInit {
   }
 
   getComments(): void {
+    if (this.room && this.room.extensions && this.room.extensions['comments']) {
+      if (this.room.extensions['comments'].enableThreshold) {
+        this.thresholdEnabled = true;
+      } else {
+        this.thresholdEnabled = false;
+      }
+    }
     this.isLoading = false;
-    let commentThreshold = -10;
+    let commentThreshold;
     if (this.thresholdEnabled) {
       commentThreshold = this.room.extensions['comments'].commentThreshold;
       if (this.hideCommentsList) {
@@ -158,6 +175,9 @@ export class CommentListComponent implements OnInit {
         c.body = payload.body;
         c.id = payload.id;
         c.timestamp = payload.timestamp;
+
+        this.announceNewComment(c.body);
+
         this.comments = this.comments.concat(c);
         break;
       case 'CommentPatched':
@@ -177,6 +197,7 @@ export class CommentListComponent implements OnInit {
                   break;
                 case 'score':
                   this.comments[i].score = <number>value;
+                  this.getComments();
                   break;
                 case this.ack:
                   const isNowAck = <boolean>value;
@@ -272,15 +293,14 @@ export class CommentListComponent implements OnInit {
     this.sortComments(this.currentSort);
   }
 
-  sort(array: any[], type: string): void {
-    array.sort((a, b) => {
+  sort(array: any[], type: string): any[] {
+    return array.sort((a, b) => {
       if (type === this.voteasc) {
         return (a.score > b.score) ? 1 : (b.score > a.score) ? -1 : 0;
       } else if (type === this.votedesc) {
         return (b.score > a.score) ? 1 : (a.score > b.score) ? -1 : 0;
-      }
-      const dateA = new Date(a.timestamp), dateB = new Date(b.timestamp);
-      if (type === this.time) {
+      } else if (type === this.time) {
+        const dateA = new Date(a.timestamp), dateB = new Date(b.timestamp);
         return (+dateB > +dateA) ? 1 : (+dateA > +dateB) ? -1 : 0;
       }
     });
@@ -288,10 +308,56 @@ export class CommentListComponent implements OnInit {
 
   sortComments(type: string): void {
     if (this.hideCommentsList === true) {
-      this.sort(this.filteredComments, type);
+      this.filteredComments = this.sort(this.filteredComments, type);
     } else {
-      this.sort(this.comments, type);
+      this.comments = this.sort(this.comments, type);
     }
     this.currentSort = type;
   }
+
+  pauseCommentStream() {
+    this.freeze = true;
+    this.commentStream.unsubscribe();
+    this.translateService.get('comment-list.comment-stream-stopped').subscribe(msg => {
+      this.notificationService.show(msg);
+    });
+  }
+
+  playCommentStream() {
+    this.freeze = false;
+    this.commentService.getAckComments(this.roomId)
+      .subscribe(comments => {
+        this.comments = comments;
+        this.getComments();
+      });
+    this.subscribeCommentStream();
+    this.translateService.get('comment-list.comment-stream-started').subscribe(msg => {
+      this.notificationService.show(msg);
+    });
+  }
+
+  subscribeCommentStream() {
+    this.commentStream = this.wsCommentService.getCommentStream(this.roomId).subscribe((message: Message) => {
+      this.parseIncomingMessage(message);
+    });
+  }
+
+  /**
+   * Announces a new comment receive.
+   */
+  public announceNewComment(comment: string) {
+    // update variable so text will be fetched to DOM
+    this.newestComment = comment;
+
+    // Currently the only possible way to announce the new comment text
+    // @see https://github.com/angular/angular/issues/11405
+    setTimeout(() => {
+      const newCommentText: string = document.getElementById('new-comment').innerText;
+
+      // current live announcer content must be cleared before next read
+      this.liveAnnouncer.clear();
+
+      this.liveAnnouncer.announce(newCommentText).catch(err => { /* TODO error handling */ });
+    }, 450);
+  }
 }
diff --git a/src/app/components/shared/comment-page/comment-page.component.html b/src/app/components/shared/comment-page/comment-page.component.html
index 6f6989296bcf0c49bb62287727c9d25143bd3c93..09107768983cdaf27bbbaeb0e48272c446fefb4c 100644
--- a/src/app/components/shared/comment-page/comment-page.component.html
+++ b/src/app/components/shared/comment-page/comment-page.component.html
@@ -1,6 +1,7 @@
 <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px">
   <div fxLayout="row" fxLayoutAlign="center">
     <app-comment-list [user]="user" [roomId]="roomId" comments></app-comment-list>
+    <button id="live_announcer-button" tabIndex="-1" (click)="announce()" class="visually-hidden">{{ 'comment-page.live-announcer' | translate }}</button>
   </div>
 </div>
 
diff --git a/src/app/components/shared/comment-page/comment-page.component.ts b/src/app/components/shared/comment-page/comment-page.component.ts
index 713c01d0931e5f6534a75ee45e432061173ce3e0..b7909fb5b3b32aa114d52d612a5d1e45f5cd6340 100644
--- a/src/app/components/shared/comment-page/comment-page.component.ts
+++ b/src/app/components/shared/comment-page/comment-page.component.ts
@@ -1,25 +1,91 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, OnDestroy, Renderer2, AfterContentInit } from '@angular/core';
 import { ActivatedRoute } from '@angular/router';
 import { User } from '../../../models/user';
 import { NotificationService } from '../../../services/util/notification.service';
 import { AuthenticationService } from '../../../services/http/authentication.service';
+import { LiveAnnouncer } from '@angular/cdk/a11y';
+import { EventService } from '../../../services/util/event.service';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-comment-page',
   templateUrl: './comment-page.component.html',
   styleUrls: ['./comment-page.component.scss']
 })
-export class CommentPageComponent implements OnInit {
+export class CommentPageComponent implements OnInit, OnDestroy, AfterContentInit {
   roomId: string;
   user: User;
 
+  listenerFn: () => void;
+
   constructor(private route: ActivatedRoute,
               private notification: NotificationService,
-              private authenticationService: AuthenticationService) { }
+              private authenticationService: AuthenticationService,
+              private eventService: EventService,
+              private liveAnnouncer: LiveAnnouncer,
+              private _r: Renderer2) { }
 
+  ngAfterContentInit(): void {
+    setTimeout( () => {
+      document.getElementById('live_announcer-button').focus();
+    }, 800);
+  }
   ngOnInit(): void {
     this.roomId = localStorage.getItem('roomId');
     this.user = this.authenticationService.getUser();
+    this.listenerFn = this._r.listen(document, 'keyup', (event) => {
+      if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit1) === true && this.eventService.focusOnInput === false) {
+        if (document.getElementById('add_comment-button')) {
+          document.getElementById('add_comment-button').focus();
+        } else {
+          document.getElementById('add_comment_small-button').focus();
+        }
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit3) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('searchBox').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit4) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('sort-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit5) === true && this.eventService.focusOnInput === false) {
+        document.getElementById('filter-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit8) === true && this.eventService.focusOnInput === false) {
+        this.liveAnnouncer.clear();
+        this.liveAnnouncer.announce('Aktueller Sitzungs-' + document.getElementById('shortId-header').textContent);
+      } else if (
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit9, KeyboardKey.Escape) === true &&
+        this.eventService.focusOnInput === false
+      ) {
+        this.announce();
+      } else if (
+        document.getElementById('search_close-button') &&
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true &&
+        this.eventService.focusOnInput === true
+      ) {
+        document.getElementById('search_close-button').click();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Escape) === true && this.eventService.focusOnInput === true) {
+        if (document.getElementById('add_comment-button')) {
+          document.getElementById('add_comment-button').focus();
+          this.eventService.makeFocusOnInputFalse();
+        } else {
+          document.getElementById('add_comment_small-button').focus();
+          this.eventService.makeFocusOnInputFalse();
+        }
+      }
+    });
+  }
+
+  ngOnDestroy() {
+    this.listenerFn();
+    this.eventService.makeFocusOnInputFalse();
+  }
+
+  public announce() {
+    this.liveAnnouncer.clear();
+    this.liveAnnouncer.announce('Du befindest dich auf der Fragen-Seite deiner Sitzung. ' +
+      'Drücke die Taste 1 um eine Frage zu stellen, die Taste 2 um auf das Sitzungs-Menü zu gelangen, ' +
+      'die Taste 8 um den aktuellen Sitzungs-Code zu hören, die Taste 0 um zurück zur Benutzer-Seite zu gelangen. ' +
+      'Sobald mehrere Fragen vorhanden sind kannst du Fragen suchen und filtern. Mit Taste 3 gelangst du in das Suchfeld,' +
+      'durch drücken der Escape-Taste wird die Sucheingabe gelöscht. Drücke die Taste 4 um Fragen zu sortieren, ' +
+      'die Taste 5 um Fragen zu filtern, oder die Taste 9 um diese Ansage zu wiederholen.', 'assertive');
   }
 
 }
diff --git a/src/app/components/shared/comment/comment.component.html b/src/app/components/shared/comment/comment.component.html
index af97385e63b80b9a4b727f129413e9c12a33ee21..75b33584c8ce017ad69c6cc97b9dd95a91ebac5d 100644
--- a/src/app/components/shared/comment/comment.component.html
+++ b/src/app/components/shared/comment/comment.component.html
@@ -1,7 +1,7 @@
 <mat-card id="comment-card" [ngClass]="{'highlighted': comment.highlighted,
                                         '': !comment.highlighted}" [@slide]>
   <div fxLayout="column">
-    <div fxLayout="row">
+    <div fxLayout="row" class="comment-actions">
       <div class="date-container">
         <div class="date" *ngIf="language === 'de'; else englishDate">
           {{comment.timestamp | date: ' HH:mm '}}
@@ -11,13 +11,13 @@
         </ng-template>
       </div>
       <button mat-icon-button *ngIf="comment.read" [disabled]="true" (click)="setRead(comment)">
-        <mat-icon svgIcon="beamer" class="beamer-icon">
+        <mat-icon svgIcon="beamer" class="beamer-icon"
                   matTooltip="{{ 'comment-page.mark-read' | translate }}">
         </mat-icon>
       </button>
       <span class="fill-remaining-space"></span>
       <button mat-icon-button *ngIf="!isStudent || comment.correct === 1" [disabled]="isStudent"
-              (click)="markCorrect(comment, 1)">
+              (click)="markCorrect(comment, 1)" tabindex="0" attr.aria-labelledby="comment_correct{{ comment.id }}">
         <mat-icon [ngClass]="{'correct-icon' : comment.correct === 1,
                               'not-marked' : (comment.correct === 0 || comment.correct === 2)}"
                   [matTooltip]="comment.correct !== 1 ? ('comment-page.mark-correct' | translate)
@@ -25,7 +25,7 @@
         </mat-icon>
       </button>
       <button mat-icon-button *ngIf="!isStudent || comment.correct === 2" [disabled]="isStudent"
-              (click)="markCorrect(comment, 2)">
+              (click)="markCorrect(comment, 2)" tabindex="0" attr.aria-labelledby="comment_not_correct{{ comment.id }}">
         <mat-icon [ngClass]="{'wrong-icon' : comment.correct === 2,
                               'not-marked' : (comment.correct === 0 || comment.correct === 1)}"
                   [matTooltip]="comment.correct != 2 ? ('comment-page.mark-wrong' | translate)
@@ -33,35 +33,71 @@
         </mat-icon>
       </button>
       <button mat-icon-button *ngIf="!isStudent || comment.favorite" [disabled]="isStudent"
-              (click)="setFavorite(comment)">
+              (click)="setFavorite(comment)" tabindex="0" attr.aria-labelledby="comment_grade{{ comment.id }}">
         <mat-icon [ngClass]="{'favorite-icon' : comment.favorite, 'not-marked' : !comment.favorite}"
                   [matTooltip]="!comment.favorite ? ('comment-page.mark-favorite' | translate)
                                                  : ('comment-page.mark-not-favorite' | translate)">grade
         </mat-icon>
       </button>
-      <button mat-icon-button *ngIf="!isStudent" (click)="openDeleteCommentDialog()">
+      <button mat-icon-button *ngIf="isCreator" (click)="openDeleteCommentDialog()"
+              tabindex="0" attr.aria-labelledby="comment_delete{{ comment.id }}">
         <mat-icon class="not-marked" matTooltip="{{ 'comment-page.delete' | translate }}">delete
         </mat-icon>
       </button>
-      <button mat-icon-button *ngIf="!isStudent && moderationEnabled" (click)="setAck(comment)">
+      <button mat-icon-button *ngIf="!isStudent && moderationEnabled" (click)="setAck(comment)"
+              tabindex="0" attr.aria-labelledby="comment_moderation{{ comment.id }}">
         <mat-icon class="gavel" [matTooltip]="!comment.ack ? ('comment-page.acknowledge' | translate)
                                                         : ('comment-page.reject' | translate)">gavel
         </mat-icon>
       </button>
     </div>
     <div fxLayout="row">
-      <div class="body click" (click)="openPresentDialog(comment)">{{comment.body.trim()}}</div>
+      <div class="body click" (click)="openPresentDialog(comment)" tabindex="0" attr.aria-labelledby="comment-{{ comment.id }}">
+        <span aria-hidden="true">{{ comment.body.trim() }}</span>
+        <span id="comment-{{ comment.id }}" class="visually-hidden" aria-hidden="true">{{ 'comment-page.comment' | translate: {
+            time: (language === 'de' ? (comment.timestamp | date: ' HH:mm ') : (comment.timestamp | date: 'h:mm a')),
+            votes: comment.score === 1 ? ('comment-page.a11y-text_textForOneVote' | translate) : comment.score + ('comment-page.a11y-text_textForVotes' | translate),
+            comment: comment.body.trim(),
+            correct: comment.correct === 1 ? ('comment-page.a11y-text_correct' | translate) : "",
+            wrong: comment.correct === 2 ? ('comment-page.a11y-text_wrong' | translate) : "",
+            bonus: comment.favorite ? ('comment-page.a11y-text_grade' | translate) : "",
+            beamer: comment.read ? ('comment-page.a11y-text_read' | translate) : ""
+          }
+          }}</span>
+      </div>
       <span class="fill-remaining-space click" (click)="openPresentDialog(comment)"></span>
-      <div fxLayout="column" (tap)="startAnimation('rubberBand')" [@rubberBand]="animationState"
+      <div fxLayout="column" *ngIf="isStudent" (tap)="startAnimation('rubberBand')" [@rubberBand]="animationState"
            (@rubberBand.done)="resetAnimationState()">
-        <button mat-icon-button (click)="voteUp(comment)" matTooltip="{{ 'comment-page.vote-up' | translate }}">
+        <button mat-icon-button (click)="voteUp(comment)" matTooltip="{{ 'comment-page.vote-up' | translate }}"
+                tabindex="0" attr.aria-labelledby="comment_vote_up{{ comment.id }}">
           <mat-icon class="voting-icon" [ngClass]="{'upVoted' : hasVoted === 1}">keyboard_arrow_up</mat-icon>
         </button>
-        <h2>{{comment.score}}</h2>
-        <button mat-icon-button (click)="voteDown(comment)" matTooltip="{{ 'comment-page.vote-down' | translate }}">
+        <span class="score">{{comment.score}}</span>
+        <button mat-icon-button (click)="voteDown(comment)" matTooltip="{{ 'comment-page.vote-down' | translate }}"
+                tabindex="0" attr.aria-labelledby="comment_vote_down{{ comment.id }}">
           <mat-icon class="voting-icon" [ngClass]="{'downVoted' : hasVoted === -1}">keyboard_arrow_down</mat-icon>
         </button>
       </div>
+    <div *ngIf="!isStudent" fxLayout="column" fxLayoutAlign="center">
+      <span class="scoreCreator">{{comment.score}}</span>
+    </div>
     </div>
   </div>
 </mat-card>
+
+<!--Hidden Div's for a11y-Descriptions-->
+<div class="visually-hidden">
+  <div id="comment_correct{{ comment.id }}">{{comment.correct != 1 ? ('comment-page.a11y-comment_not_marked_correct' | translate)
+                                                              : ('comment-page.a11y-comment_marked_correct' | translate) }}
+  </div>
+  <div id="comment_not_correct{{ comment.id }}">{{comment.correct != 2 ? ('comment-page.a11y-comment_not_marked_wrong' | translate)
+      : ('comment-page.a11y-comment_marked_wrong' | translate) }}
+  </div>
+  <div id="comment_grade{{ comment.id }}">{{ !comment.favorite ? ('comment-page.a11y-comment_grade' | translate)
+      : ('comment-page.a11y-comment_not_grade' | translate) }}
+  </div>
+  <div id="comment_delete{{ comment.id }}">{{'comment-page.a11y-comment_delete' | translate}}</div>
+  <div id="comment_moderation{{ comment.id }}">{{'comment-page.a11y-comment_moderation' | translate}}</div>
+  <div *ngIf="isStudent" id="comment_vote_up{{ comment.id }}">{{'comment-page.a11y-comment_vote_up' | translate}}</div>
+  <div *ngIf="isStudent" id="comment_vote_down{{ comment.id }}">{{'comment-page.a11y-comment_vote_down' | translate}}</div>
+</div>
diff --git a/src/app/components/shared/comment/comment.component.scss b/src/app/components/shared/comment/comment.component.scss
index a0d4f5872f25dec0cc0428557cb53e13e4ac10aa..446fb52af4c8f417f92f8964878089d4c50c10f7 100644
--- a/src/app/components/shared/comment/comment.component.scss
+++ b/src/app/components/shared/comment/comment.component.scss
@@ -13,6 +13,7 @@ mat-card-content > :first-child {
   width: 35px;
   height: 35px;
   font-size: 35px;
+  font-weight: bold;
   line-height: 100% !important;
   color: var(--on-surface)
 }
@@ -26,7 +27,7 @@ mat-card-content > :first-child {
 }
 
 .not-marked {
-  color: var(--grey);
+  color: slategray;
 }
 
 .correct-icon {
@@ -45,10 +46,17 @@ mat-card-content > :first-child {
   color: var(--on-surface);
 }
 
-h2 {
+.score {
   text-align: center;
   margin: 0;
-  color: var(--on-surface)
+  color: var(--on-surface);
+  font-size: 24px;
+}
+
+.scoreCreator {
+  color: var(--on-surface);
+  margin: 0 10px 0 10px;
+  font-size: 24px;
 }
 
 .body {
@@ -74,12 +82,12 @@ h2 {
 .date-container {
   opacity: 0.7;
   color: var(--on-surface);
-  height: 40px;
+  padding-top: .3rem;
 }
 
-.date {
-  padding-top: 10.5px;
-
+.comment-actions {
+  align-items: center;
+  height: 3.5rem;
 }
 
 .highlighted {
diff --git a/src/app/components/shared/comment/comment.component.ts b/src/app/components/shared/comment/comment.component.ts
index cc642b30df0823d6d46247099d56570fb406219f..3673275675a761b5c4aaef6499f6f69e8eba5493 100644
--- a/src/app/components/shared/comment/comment.component.ts
+++ b/src/app/components/shared/comment/comment.component.ts
@@ -14,6 +14,7 @@ import { MatDialog } from '@angular/material';
 import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';
 import { DeleteCommentComponent } from '../../creator/_dialogs/delete-comment/delete-comment.component';
 import { CorrectWrong } from '../../../models/correct-wrong.enum';
+import { UserRole } from '../../../models/user-roles.enum';
 
 export const rubberBand = [
   style({ transform: 'scale3d(1, 1, 1)', offset: 0 }),
@@ -43,6 +44,7 @@ export const rubberBand = [
 export class CommentComponent implements OnInit {
   @Input() comment: Comment;
   isStudent = false;
+  isCreator = false;
   hasVoted = 0;
   language: string;
   animationState: string;
@@ -64,8 +66,11 @@ export class CommentComponent implements OnInit {
   }
 
   ngOnInit() {
-    if (this.authenticationService.getRole() === 0) {
+    const currentRole = this.authenticationService.getRole();
+    if (currentRole === UserRole.PARTICIPANT) {
       this.isStudent = true;
+    } else if (currentRole === UserRole.CREATOR) {
+      this.isCreator = true;
     }
     this.language = localStorage.getItem('currentLang');
     this.translateService.use(this.language);
@@ -144,7 +149,9 @@ export class CommentComponent implements OnInit {
 
   delete(): void {
     this.commentService.deleteComment(this.comment.id).subscribe(room => {
-      this.notification.show(`Comment '${this.comment.body}' successfully deleted.`);
+      this.translateService.get('comment-list.comment-deleted').subscribe(msg => {
+        this.notification.show(msg);
+      });
     });
   }
 
@@ -166,7 +173,7 @@ export class CommentComponent implements OnInit {
 
   openPresentDialog(comment: Comment): void {
     this.goToFullScreen(document.documentElement);
-    if (this.isStudent === false) {
+    if (this.isCreator === true) {
       this.wsCommentService.highlight(comment);
       if (!comment.read) {
         this.setRead(comment);
diff --git a/src/app/components/shared/content-groups/content-groups.component.scss b/src/app/components/shared/content-groups/content-groups.component.scss
index a374456f1140c764f68344312815450264e76541..aac82277d244ce9fe8131273af3a7cb709d9df04 100644
--- a/src/app/components/shared/content-groups/content-groups.component.scss
+++ b/src/app/components/shared/content-groups/content-groups.component.scss
@@ -1,4 +1,4 @@
-@import '../../../../theme/default-theme/_variables.scss';
+@import '../../../../theme/light-theme/_variables.scss';
 
 #contentGroup {
   background-color: var(--primary);
diff --git a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..8b5494962b54b0a409318c97e14bb75ec7b2027c
--- /dev/null
+++ b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html
@@ -0,0 +1,41 @@
+<div [ngClass]="{
+  'dialog-action-buttons': true,
+  'no-spacing': (spacing === false)
+}">
+  <mat-divider></mat-divider>
+  <div fxLayoutAlign="end">
+    <div fxLayout="row-reverse" fxLayoutGap="10px" class="buttons">
+      <button
+        *ngIf="confirmButtonClickAction !== undefined"
+        type="button"
+        mat-flat-button
+        class="mat-flat-button {{ confirmButtonType }}-confirm-button"
+        attr.aria-labelledby="{{ ariaPrefix + 'confirm' | translate }}"
+        (click)="performConfirmButtonClickAction()"
+      >{{ buttonsLabelSection + '.' + confirmButtonLabel | translate}}</button>
+      <button
+        *ngIf="cancelButtonClickAction !== undefined"
+        type="button"
+        mat-flat-button
+        class="cancel-button"
+        attr.aria-labelledby="{{ ariaPrefix + 'cancel' | translate }}"
+        (click)="performCancelButtonClickAction()"
+      >{{ buttonsLabelSection + '.cancel' | translate}}</button>
+    </div>
+  </div>
+  <!--Hidden Div's for a11y-Descriptions-->
+  <div class="visually-hidden">
+    <div
+      *ngIf="cancelButtonClickAction !== undefined"
+      id="{{ ariaPrefix + 'cancel' | translate }}"
+    >
+      {{ buttonsLabelSection + '.cancel-description' | translate }}
+    </div>
+    <div
+      *ngIf="confirmButtonClickAction !== undefined"
+      id="{{ ariaPrefix + 'confirm' | translate }}"
+    >
+      {{ buttonsLabelSection + '.' + confirmButtonLabel + '-description' | translate }}
+    </div>
+  </div>
+</div>
diff --git a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.scss b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.scss
new file mode 100644
index 0000000000000000000000000000000000000000..0d427f6008789952a0c187cf8e1dbb91158d301c
--- /dev/null
+++ b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.scss
@@ -0,0 +1,28 @@
+.dialog-action-buttons:not(.no-spacing), .dialog-action-buttons .buttons {
+  margin-top: 1rem;
+}
+
+.dialog-action-buttons .cancel-button {
+  background-color: var(--cancel);
+  color: var(--on-cancel);
+}
+
+.primary-confirm-button {
+  background-color: var(--secondary);
+  color: var(--on-secondary);
+}
+
+.alert-confirm-button {
+  background-color: var(--red);
+  color: #fff;
+}
+
+.dialog-action-buttons .cancel-button:focus {
+  background: var(--on-surface);
+  color: var(--background);
+}
+
+.dialog-action-buttons .primary-confirm-button:focus {
+  background: var(--on-surface);
+  color: var(--background);
+}
diff --git a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.ts b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0a0d9c915404a2ebe4016a4aebff7a3392e38236
--- /dev/null
+++ b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.ts
@@ -0,0 +1,87 @@
+import { Component, OnInit, Input, Output } from '@angular/core';
+
+/**
+ * Available confirm button types.
+ */
+export enum DialogConfirmActionButtonType {
+  Primary = 'primary',
+  Alert = 'alert'
+}
+
+
+@Component({
+  selector: 'app-dialog-action-buttons',
+  templateUrl: './dialog-action-buttons.component.html',
+  styleUrls: ['./dialog-action-buttons.component.scss']
+})
+export class DialogActionButtonsComponent implements OnInit {
+
+  /**
+   * The button labels section.
+   */
+  @Input() buttonsLabelSection: string;
+
+
+  /**
+   * The i18n label identifier of the confirm button.
+   */
+  @Input() confirmButtonLabel: string;
+
+
+  /**
+   * The confirm button type.
+   */
+  @Input() confirmButtonType: DialogConfirmActionButtonType = DialogConfirmActionButtonType.Primary;
+
+
+  /**
+   * A callback which will be executed if the confirm button was clicked.
+   */
+  @Input() confirmButtonClickAction: (Function | undefined);
+
+
+  /**
+   * A callback which will be executed if the cancel button was clicked.
+   */
+  @Input() cancelButtonClickAction: (Function | undefined);
+
+
+  /**
+   * TRUE if some spacing will be rendered above the action buttons.
+   */
+  @Input() spacing = true;
+
+
+  /**
+   * The ARIA identifier prefix.
+   */
+  private ariaPrefix: string = (new Date().getTime().toString());
+
+
+  /**
+   * @inheritDoc
+   */
+  ngOnInit() {
+    // nothing special yet
+  }
+
+
+  /**
+   * Performs the confirm button click action.
+   */
+  public performConfirmButtonClickAction(): void {
+    if (this.confirmButtonClickAction !== undefined) {
+      this.confirmButtonClickAction();
+    }
+  }
+
+
+  /**
+   * Performs the cancel button click action.
+   */
+  public performCancelButtonClickAction(): void {
+    if (this.cancelButtonClickAction !== undefined) {
+      this.cancelButtonClickAction();
+    }
+  }
+}
diff --git a/src/app/components/shared/footer/footer.component.html b/src/app/components/shared/footer/footer.component.html
index 83ed552e6b1236f054153cb0a2659b2df3852648..a78872ae9afb1f31d61a09720c71eeada7551622 100644
--- a/src/app/components/shared/footer/footer.component.html
+++ b/src/app/components/shared/footer/footer.component.html
@@ -1,28 +1,29 @@
-<footer>
-  <mat-toolbar id="footer-toolbar">
-    <button mat-button (click)="navToBlog()" *ngIf="router.url !== '/home'">
-      <mat-icon>help_outline</mat-icon>
-      <span *ngIf="deviceType === 'desktop'">
-        {{ 'footer.help' | translate }}
-      </span>
-    </button>
-    <button mat-button (click)="showDemo()" *ngIf="router.url === '/home'">
-      <mat-icon>ondemand_video</mat-icon>
+<div>
+
+  <mat-toolbar id="footer-toolbar" class="mat-elevation-z24">
+
+    <button class="focus_button" mat-button (click)="showDemo()"
+            aria-labelledby="demo-label">
+      <mat-icon>flag</mat-icon>
       <span *ngIf="deviceType === 'desktop'">
         {{ 'footer.demo' | translate }}
       </span>
     </button>
 
     <span class="fill-remaining-space"></span>
-    <button mat-button [matMenuTriggerFor]="themeMenu">
-      <mat-icon>palette</mat-icon>
+
+    <button class="focus_button" mat-button
+            aria-labelledby="style-label" [matMenuTriggerFor]="themeMenu">
+      <mat-icon>accessibility_new</mat-icon>
       <span *ngIf="deviceType === 'desktop'">
           {{'footer.style' | translate}}
         </span>
     </button>
 
     <span class="fill-remaining-space"></span>
-    <button mat-button [matMenuTriggerFor]="langMenu">
+    <button class="focus_button" id="language-menu" mat-button
+            aria-labelledby="language-label"
+            [matMenuTriggerFor]="langMenu">
       <mat-icon>language</mat-icon>
       <span *ngIf="deviceType === 'desktop'">
           {{'footer.language' | translate}}
@@ -30,52 +31,71 @@
     </button>
 
     <span class="fill-remaining-space"></span>
-    <button mat-button (click)="navToDSGVO()">
+
+    <button class="focus_button" (click)="showDataProtection()" mat-button
+            aria-labelledby="data-protection-label">
       <mat-icon>security</mat-icon>
       <span *ngIf="deviceType === 'desktop'">
-        {{ 'footer.dsgvo' | translate}}
+        {{'footer.dsgvo' | translate}}
       </span>
     </button>
+
     <span class="fill-remaining-space"></span>
-    <button mat-button (click)="navToImprint()">
+
+    <button class="focus_button" (click)="showImprint()" mat-button aria-labelledby="imprint-label">
       <mat-icon>info</mat-icon>
       <span *ngIf="deviceType === 'desktop'">
-        {{ 'footer.imprint' | translate}}
+        {{'footer.imprint' | translate}}
       </span>
     </button>
 
     <mat-menu class="color-menu" #themeMenu="matMenu" [overlapTrigger]="false">
-      <mat-grid-list cols="2">
-        <mat-grid-tile>
-          <button mat-icon-button class="default color-button" (click)="changeTheme('arsnova')">
-            <mat-icon class="color-icon" matTooltip="{{ 'footer.bright' | translate }}">lens</mat-icon>
-            <mat-icon *ngIf="themeClass === 'arsnova'" class="check">check_circle</mat-icon>
-          </button>
-        </mat-grid-tile>
-        <mat-grid-tile>
-          <button mat-icon-button class="dark color-button" (click)="changeTheme('dark')">
-            <mat-icon class="color-icon" matTooltip="{{ 'footer.dark' | translate }}">lens</mat-icon>
-            <mat-icon *ngIf="themeClass === 'dark'" class="check">check_circle</mat-icon>
-          </button>
-        </mat-grid-tile>
-        <mat-grid-tile>
-          <button mat-icon-button class="purple color-button" (click)="changeTheme('purple')">
-            <mat-icon class="color-icon" matTooltip="{{ 'footer.beamer' | translate }}">lens</mat-icon>
-            <mat-icon *ngIf="themeClass === 'purple'" class="check">check_circle</mat-icon>
-          </button>
-        </mat-grid-tile>
-        <mat-grid-tile>
-          <button mat-icon-button class="blue color-button" (click)="changeTheme('blue')">
-            <mat-icon class="color-icon" matTooltip="{{ 'footer.wai' | translate }}">lens</mat-icon>
-            <mat-icon *ngIf="themeClass === 'blue'" class="check">check_circle</mat-icon>
-          </button>
-        </mat-grid-tile>
-      </mat-grid-list>
+      <button
+        *ngFor="let theme of themes"
+        (click)="changeTheme(theme);"
+        matRipple [matRippleColor]="'rgba(0,0,0,0.1)'"
+        title="{{theme.toString(getLanguage())}}"
+        aria-label="test">
+        <div class="btnContent">
+          <div class="btnColorIcon" [ngStyle]="{
+                  'background-color':theme.getPreviewColor()}">
+            <div class="checked" [ngClass]="{
+                        'checked_true':theme.key===themeClass,
+                        'checked_false':theme.key!==themeClass}">
+              <mat-icon [ngStyle]="{'color':theme.getOnPreviewColor()}">
+                checked
+              </mat-icon>
+            </div>
+          </div>
+          <div class="btnAppend">
+            <div class="title">
+              <p class="title_bold">{{theme.getName(getLanguage())}}</p>
+            </div>
+            <div class="title">
+              <p>{{theme.getDescription(getLanguage())}}</p>
+            </div>
+          </div>
+        </div>
+      </button>
     </mat-menu>
 
     <mat-menu #langMenu="matMenu" [overlapTrigger]="false">
-      <button mat-menu-item (click)="useLanguage('de')">{{ 'footer.german' | translate }}</button>
-      <button mat-menu-item (click)="useLanguage('en')">{{ 'footer.english' | translate }}</button>
+      <button class="focus_item" mat-menu-item (click)="useLanguage('de')">{{ 'footer.german' | translate }}</button>
+      <button class="focus_item" mat-menu-item (click)="useLanguage('en')">{{ 'footer.english' | translate }}</button>
     </mat-menu>
+
   </mat-toolbar>
-</footer>
+</div>
+
+<div class="visually-hidden">
+  <div id="help-label">{{'footer.accessibility-help' | translate}}</div>
+  <div id="demo-label">{{'footer.accessibility-demo' | translate}}</div>
+  <div id="style-label">{{'footer.accessibility-style' | translate}}</div>
+  <div id="language-label">{{'footer.accessibility-language' | translate}}</div>
+  <div id="data-protection-label">{{'footer.accessibility-data_protection' | translate}}</div>
+  <div id="imprint-label">{{'footer.accessibility-imprint' | translate}}</div>
+  <div id="style-default-label">{{'footer.style-default' | translate}}</div>
+  <div id="style-dark-label">{{'footer.style-dark' | translate}}</div>
+  <div id="style-purple-label">{{'footer.style-purple' | translate}}</div>
+  <div id="style-blue-label">{{'footer.style-blue' | translate}}</div>
+</div>
diff --git a/src/app/components/shared/footer/footer.component.scss b/src/app/components/shared/footer/footer.component.scss
index 21eb6fe61baa1b28346942eefd891905cb3563cb..cea2c7d9b1750f5784cf305a03d2b1f2ff6cf47a 100644
--- a/src/app/components/shared/footer/footer.component.scss
+++ b/src/app/components/shared/footer/footer.component.scss
@@ -44,9 +44,12 @@ mat-icon {
 .color-button {
   width: 100%;
   height: 100%;
+  overflow: visible;
 }
 
 .color-icon {
+  position:relative;
+  left: -10px;
   font-size: 45px;
   height: 45px;
   width: 45px;
@@ -57,13 +60,149 @@ mat-icon {
   padding: 0 8px 0 8px;
 }
 
+::ng-deep .mat-menu-panel {
+  padding: 0 10px!important;
+  width: 100%!important;
+}
+
 .check {
   font-size: 25px;
   height: 25px;
   width: 25px;
   line-height: 100%!important;
   position: absolute;
-  top: 15px;
-  right: 15px;
+  top:calc( 50% + 1px );
+  left:calc( 50% + 1px );
+  transform:translate(-50%,-50%);
   color: white;
 }
+
+::ng-deep .color-menu{
+  min-width:400px!important;
+  max-width:400px!important;
+  width:400px!important;
+}
+
+@media (max-width: 500px){
+  .themeMenuWrp{
+    width:calc( 100% - 40px );
+    height:215px;
+    left:12px;
+    bottom:35px;
+    padding:8px;
+  }
+}
+
+::ng-deep .color-menu button{
+  width:100%;
+  outline:none;
+  background-color:transparent;
+  float:left;
+  border:none;
+  margin:0px;
+  padding:0px;
+  cursor:pointer;
+}
+
+::ng-deep .color-menu button:last-child{
+  margin-bottom:5px;
+}
+
+.btnContent{
+  width:100%;
+  height:50px;
+  float:left;
+  margin-bottom:5px;
+  border-radius:2px;
+}
+
+.btnContent>.btnColorIcon{
+  width:40px;
+  height:40px;
+  float:left;
+  margin:5px;
+  padding:0px;
+  border-radius:100%;
+}
+
+.checked{
+  width:calc( 100% - 10px );
+  height:calc( 100% - 10px );
+  margin:5px;
+  float:left;
+  border-radius:100%;
+  transition:all 0.1s;
+}
+
+.checked.checked_true{
+  transform:scale(1);
+  opacity:1;
+  background-color:transparent;
+}
+
+.checked.checked_false{
+  opacity:1;
+}
+
+.checked.checked_false>mat-icon{
+  opacity:0;
+}
+
+.checked.checked_true>mat-icon{
+  opacity:1;
+}
+
+.checked>mat-icon{
+  float:left;
+  position:relative;
+  left:50%;
+  top:50%;
+  transform:translate(-50%,-50%);
+  color:#FFFFFF;
+  border-radius:100%;
+  transition:all 0.1s;
+}
+
+.btnContent>.btnAppend{
+  width:calc( 100% - 50px );
+  float:right;
+  position:relative;
+  top:50%;
+  transform:translateY(-50%);
+}
+
+.btnContent>.btnAppend>.title{
+  width:100%;
+  height:15px;
+  float:left;
+  margin-bottom:5px;
+}
+
+.btnContent>.btnAppend>.title:last-child{
+  margin-bottom:0px;
+}
+
+.title>*{
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  float:left;
+  padding:0px;
+  margin:0px;
+  margin-left:15px;
+  font-family:'Roboto',serif;
+  color:rgba(0,0,0,0.8);
+}
+
+.title_bold{
+  color:rgba(0,0,0,0.9);
+  font-weight:500;
+}
+
+.focus_button:focus {
+  background: var(--on-surface);
+  color: var(--background);
+}
+
+.focus_item:focus {
+  border: 1px solid var(--on-surface);
+}
diff --git a/src/app/components/shared/footer/footer.component.ts b/src/app/components/shared/footer/footer.component.ts
index 340e5f1b199c798bdaa7e5fe955b9986a555f003..d0232ddcc6f0a70aa4aecf5dd8e5d0245cc6c637 100644
--- a/src/app/components/shared/footer/footer.component.ts
+++ b/src/app/components/shared/footer/footer.component.ts
@@ -9,6 +9,13 @@ import { User } from '../../../models/user';
 import { Room } from '../../../models/room';
 import { DemoVideoComponent } from '../../home/_dialogs/demo-video/demo-video.component';
 import { ThemeService } from '../../../../theme/theme.service';
+import { CookiesComponent } from '../../home/_dialogs/cookies/cookies.component';
+import { ImprintComponent } from '../../home/_dialogs/imprint/imprint.component';
+import { HelpPageComponent } from '../_dialogs/help-page/help-page.component';
+import { DataProtectionComponent } from '../../home/_dialogs/data-protection/data-protection.component';
+import { Theme } from '../../../../theme/Theme';
+import { OverlayComponent } from '../../home/_dialogs/overlay/overlay.component';
+import { AppComponent } from '../../../app.component';
 
 @Component({
   selector: 'app-footer',
@@ -17,18 +24,19 @@ import { ThemeService } from '../../../../theme/theme.service';
 })
 export class FooterComponent implements OnInit {
 
-  blogUrl = 'https://arsnova.thm.de/blog/';
-  dsgvoUrl = 'https://arsnova.thm.de/blog/datenschutzerklaerung/';
-  imprUrl = 'https://arsnova.thm.de/blog/impressum/';
-  demoId = '78844652';
+  public demoId = '22424050';
 
-  room: Room;
-  user: User;
+  public room: Room;
+  public user: User;
 
-  open: string;
-  deviceType: string;
+  public open: string;
+  public deviceType: string;
+  public cookieAccepted: boolean;
+  public dataProtectionConsent: boolean;
 
-  themeClass = localStorage.getItem('theme');
+  public themeClass = localStorage.getItem('theme');
+
+  public themes: Theme[];
 
   constructor(public notificationService: NotificationService,
               public router: Router,
@@ -41,68 +49,94 @@ export class FooterComponent implements OnInit {
   }
 
   ngOnInit() {
+    if (!this.themeService.getTheme()['source']['_value']) {
+      this.themeService.activate('dark');
+      this.themeClass = 'dark';
+    }
     this.deviceType = localStorage.getItem('deviceType');
     this.translateService.use(localStorage.getItem('currentLang'));
     this.translateService.get('footer.open').subscribe(message => {
       this.open = message;
     });
+    this.themes = this.themeService.getThemes();
+    this.updateScale(this.themeService.getThemeByKey(this.themeClass));
+    this.cookieAccepted = localStorage.getItem('cookieAccepted') === 'true';
+    this.dataProtectionConsent = localStorage.getItem('dataProtectionConsent') === 'true';
+
+    if (!localStorage.getItem('cookieAccepted')) {
+      this.showCookieModal();
+    } else {
+      if (!this.cookieAccepted || !this.dataProtectionConsent) {
+        this.showOverlay();
+      }
+    }
   }
 
-  navToBlog() {
-    this.translateService.get('footer.will-open').subscribe(message => {
-      this.notificationService.show('Blog' + message, this.open, {
-        duration: 4000
-      });
+  showDemo() {
+    const dialogRef = this.dialog.open(DemoVideoComponent, {
+      width: '80%'
     });
-    this.notificationService.snackRef.afterDismissed().subscribe(info => {
-      if (info.dismissedByAction === true) {
-        window.open(this.blogUrl, '_blank');
+    dialogRef.componentInstance.deviceType = this.deviceType;
+  }
+
+  showCookieModal() {
+    const dialogRef = this.dialog.open(CookiesComponent, {
+      width: '80%',
+      autoFocus: true
+
+    });
+    dialogRef.disableClose = true;
+    dialogRef.componentInstance.deviceType = this.deviceType;
+    dialogRef.afterClosed().subscribe(res => {
+      this.cookieAccepted = res;
+      this.dataProtectionConsent = res;
+      if (!res) {
+        this.showOverlay();
       }
     });
   }
 
-  navToDSGVO() {
-    this.translateService.get('footer.will-open').subscribe(message => {
-      this.translateService.get('footer.dsgvo').subscribe(what => {
-        this.notificationService.show(what + message, this.open, {
-          duration: 4000
-        });
-      });
+  showImprint() {
+    const dialogRef = this.dialog.open(ImprintComponent, {
+      width: '80%'
     });
-    this.notificationService.snackRef.afterDismissed().subscribe(info => {
-      if (info.dismissedByAction === true) {
-        window.open(this.dsgvoUrl, '_blank');
-      }
+    dialogRef.componentInstance.deviceType = this.deviceType;
+  }
+
+  showHelp() {
+    const dialogRef = this.dialog.open(HelpPageComponent, {
+      width: '80%'
     });
+    dialogRef.componentInstance.deviceType = this.deviceType;
   }
 
-  navToImprint() {
-    this.translateService.get('footer.will-open').subscribe(message => {
-      this.translateService.get('footer.imprint').subscribe(what => {
-        this.notificationService.show(what + message, this.open, {
-          duration: 4000
-        });
-      });
+  showDataProtection() {
+    const dialogRef = this.dialog.open(DataProtectionComponent, {
+      width: '80%'
     });
-    this.notificationService.snackRef.afterDismissed().subscribe(info => {
-      if (info.dismissedByAction === true) {
-        window.open(this.imprUrl, '_blank');
+    dialogRef.componentInstance.deviceType = this.deviceType;
+    dialogRef.afterClosed().subscribe(res => {
+      this.dataProtectionConsent = res;
+      if (!res) {
+        this.showOverlay();
       }
     });
   }
 
-  showDemo() {
-    const dialogRef = this.dialog.open(DemoVideoComponent, {
-      position: {
-        left: '10px',
-        right: '10px'
-      },
-      maxWidth: '100vw',
-      maxHeight: '100vh',
-      height: '100%',
-      width: '100%'
+  showOverlay() {
+    const dialogRef = this.dialog.open(OverlayComponent, {
     });
     dialogRef.componentInstance.deviceType = this.deviceType;
+    dialogRef.disableClose = true;
+    dialogRef.afterClosed().subscribe(res => {
+      if (res) {
+        if (!this.cookieAccepted) {
+          this.showCookieModal();
+        } else if (!this.dataProtectionConsent) {
+          this.showDataProtection();
+        }
+      }
+    });
   }
 
   useLanguage(language: string) {
@@ -111,8 +145,18 @@ export class FooterComponent implements OnInit {
     this.langService.langEmitter.emit(language);
   }
 
-  changeTheme(theme) {
-    this.themeClass = theme;
-    this.themeService.activate(theme);
+  changeTheme(theme: Theme) {
+    this.themeClass = theme.key;
+    this.themeService.activate(theme.key);
+    this.updateScale(theme);
+  }
+
+  updateScale(theme: Theme) {
+    AppComponent.rescale.setInitialScale(theme.scale);
+    AppComponent.rescale.setDefaultScale(theme.scale);
+  }
+
+  getLanguage(): string {
+    return localStorage.getItem('currentLang');
   }
 }
diff --git a/src/app/components/shared/header/header.component.html b/src/app/components/shared/header/header.component.html
index 77832d3caecfc6771942f1cefb4eaca98586998a..2787fecc6b79c305f1a721693e403231ccc366c1 100644
--- a/src/app/components/shared/header/header.component.html
+++ b/src/app/components/shared/header/header.component.html
@@ -1,14 +1,18 @@
-<mat-toolbar class="mat-elevation-z4">
+<mat-toolbar class="mat-elevation-z2">
   <mat-toolbar-row>
-    <button mat-icon-button *ngIf="router.url !== '/home'" (click)="goBack()"
+    <button id="back-button" mat-icon-button aria-labelledby="back-label" *ngIf="router.url !== '/home'" (click)="goBack()"
             matTooltip="{{'header.back' | translate}}">
-      <mat-icon class="header-icons" aria-label="Go back">keyboard_arrow_left</mat-icon>
+      <mat-icon class="header-icons">arrow_back</mat-icon>
+    </button>
+    <button mat-icon-button aria-hidden="true">
+      <mat-icon class="header-icons" (click)="getRescale().toggleState();">format_size</mat-icon>
+
     </button>
     <span class="fill-remaining-space"></span>
-    <h3 *ngIf="router.url.includes('comments') && user.role === 3 && deviceType === 'desktop'"
+    <h2 *ngIf="router.url.includes('comments') && user.role === 3 && deviceType === 'desktop'"
         fxLayoutAlign="center center">
       {{cTime}}
-    </h3>
+    </h2>
     <span class="fill-remaining-space"
           *ngIf="router.url.includes('comments') && user.role === 3 && deviceType === 'desktop'"></span>
     <span
@@ -19,19 +23,19 @@
       gavel
     </mat-icon>
   </span>
-    <h3 *ngIf="router.url.includes('comments')" fxLayoutAlign="center center">
+    <h2 id="shortId-header" *ngIf="router.url.includes('comments')" fxLayoutAlign="center center">
       {{'header.id' | translate}}: {{ shortId.slice(0, 4) }} {{  shortId.slice(4, 8) }}
-    </h3>
+    </h2>
     <span class="fill-remaining-space"></span>
 
     <mat-menu #userMenu="matMenu" [overlapTrigger]="false">
       <button mat-menu-item *ngIf="user" routerLink="/user">
-        <mat-icon class="sessions">work</mat-icon>
+        <mat-icon class="sessions">people</mat-icon>
         <span *ngIf="!user.isGuest">{{'header.my-sessions' | translate}}</span>
-        <span *ngIf="user.isGuest">{{'header.visited-sessions' | translate}}</span>
+        <span *ngIf="user.isGuest" svgIcon="meeting_room">{{'header.visited-sessions' | translate}}</span>
       </button>
       <button mat-menu-item *ngIf="user && !user.isGuest" (click)="openDeleteUserDialog()">
-        <mat-icon color="warn">delete_sweep</mat-icon>
+        <mat-icon color="warn">delete</mat-icon>
         <span>{{'header.delete-account' | translate}}</span>
       </button>
       <button mat-menu-item (click)="logout()">
@@ -40,29 +44,37 @@
       </button>
     </mat-menu>
 
-    <button mat-button *ngIf="user && deviceType === 'desktop'" [matMenuTriggerFor]="userMenu">
+    <button [disabled]="cookiesDisabled()"  mat-button *ngIf="user && deviceType === 'desktop'" [matMenuTriggerFor]="userMenu"
+            aria-labelledby="session-label" id="session-button">
       <div class="label-icon">
-        <mat-icon *ngIf="!user.isGuest" class="header-icons">account_box</mat-icon>
-        <mat-icon *ngIf="user.isGuest" class="header-icons">meeting_room</mat-icon>
-        <h3 *ngIf="!user.isGuest">{{'header.my-account' | translate}}</h3>
-        <h3 *ngIf="user.isGuest">{{'header.my-guest-account' | translate}}</h3>
+        <mat-icon *ngIf="!user.isGuest" class="header-icons">account_circle</mat-icon>
+        <mat-icon *ngIf="user.isGuest" svgIcon="meeting_room" class="header-icons"></mat-icon>
+        <h2 *ngIf="!user.isGuest">{{'header.my-account' | translate}}</h2>
+        <h2 *ngIf="user.isGuest">{{'header.my-guest-account' | translate}}</h2>
       </div>
     </button>
 
-    <button mat-icon-button *ngIf="user && deviceType === 'mobile'" [matMenuTriggerFor]="userMenu">
-      <mat-icon *ngIf="!user.isGuest" class="header-icons">account_box</mat-icon>
-      <mat-icon *ngIf="user.isGuest" class="header-icons">meeting_room</mat-icon>
+    <button [disabled]="cookiesDisabled()"  mat-icon-button *ngIf="user && deviceType === 'mobile'" [matMenuTriggerFor]="userMenu"
+            aria-labelledby="session-label">
+      <mat-icon *ngIf="!user.isGuest" class="header-icons">account_circle</mat-icon>
+      <mat-icon *ngIf="user.isGuest" svgIcon="meeting_room" class="header-icons"></mat-icon>
     </button>
 
-    <button mat-button *ngIf="!user && deviceType === 'desktop'" (click)=login(false)>
+    <button id="login-button" [disabled]="cookiesDisabled()" mat-button *ngIf="!user && deviceType === 'desktop'" (click)=login(false) aria-labelledby="login-label">
       <div class="label-icon">
-        <mat-icon class="header-icons">account_box</mat-icon>
-        <h3 *ngIf="deviceType === 'desktop'">{{'header.login' | translate}}</h3>
+        <mat-icon class="header-icons">account_circle</mat-icon>
+        <h2 *ngIf="deviceType === 'desktop'">{{'header.login' | translate}}</h2>
       </div>
     </button>
 
-    <button mat-icon-button *ngIf="!user && deviceType === 'mobile'" (click)=login(false)>
-      <mat-icon class="header-icons">account_box</mat-icon>
+    <button [disabled]="cookiesDisabled()"  mat-icon-button *ngIf="!user && deviceType === 'mobile'" (click)=login(false) aria-labelledby="login-label">
+      <mat-icon class="header-icons">account_circle</mat-icon>
     </button>
   </mat-toolbar-row>
 </mat-toolbar>
+
+<div class="visually-hidden">
+  <div id="login-label">{{'header.accessibility-login' | translate}}</div>
+  <div id="back-label">{{'header.accessibility-back' | translate}}</div>
+  <div id="session-label">{{'header.accessibility-session' | translate}}</div>
+</div>
diff --git a/src/app/components/shared/header/header.component.scss b/src/app/components/shared/header/header.component.scss
index 456b95c998d992d359c03feec0bfb6868279cbac..440bac8868612392ad3fcb4a3c8b43cd521bddec 100644
--- a/src/app/components/shared/header/header.component.scss
+++ b/src/app/components/shared/header/header.component.scss
@@ -24,7 +24,7 @@ mat-toolbar {
   color: var(--primary);
 }
 
-h3 {
+h2 {
   color: var(--on-surface);
   margin-left: 5px;
   font-size: medium;
@@ -38,3 +38,7 @@ h3 {
 .mat-button {
   padding: 0 0 0 10px;
 }
+
+button:focus {
+  border: 1px solid var(--on-surface);
+}
diff --git a/src/app/components/shared/header/header.component.ts b/src/app/components/shared/header/header.component.ts
index 9206dbf607b6bce4f65fe6dd12fb025d5f7d8973..9ebd8deabae25f21d07ef6dc6e8eae502efd3c19 100644
--- a/src/app/components/shared/header/header.component.ts
+++ b/src/app/components/shared/header/header.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, Renderer2 } from '@angular/core';
 import { AuthenticationService } from '../../../services/http/authentication.service';
 import { NotificationService } from '../../../services/util/notification.service';
 import { Router, NavigationEnd } from '@angular/router';
@@ -10,6 +10,11 @@ import { MatDialog } from '@angular/material';
 import { LoginComponent } from '../login/login.component';
 import { DeleteAccountComponent } from '../_dialogs/delete-account/delete-account.component';
 import { UserService } from '../../../services/http/user.service';
+import { EventService } from '../../../services/util/event.service';
+import { AppComponent } from '../../../app.component';
+import { Rescale } from '../../../models/rescale';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-header',
@@ -29,7 +34,9 @@ export class HeaderComponent implements OnInit {
               public router: Router,
               private translationService: TranslateService,
               public dialog: MatDialog,
-              private userService: UserService
+              private userService: UserService,
+              public eventService: EventService,
+              private _r: Renderer2
   ) {
   }
 
@@ -73,6 +80,22 @@ export class HeaderComponent implements OnInit {
       }
     });
     this.moderationEnabled = (localStorage.getItem('moderationEnabled') === 'true') ? true : false;
+
+    this._r.listen(document, 'keyup', (event) => {
+      if (
+        document.getElementById('back-button') &&
+        KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit0) === true &&
+        this.eventService.focusOnInput === false
+      ) {
+        document.getElementById('back-button').focus();
+      } else if (KeyboardUtils.isKeyEvent(event, KeyboardKey.Digit2) === true && this.eventService.focusOnInput === false) {
+        if (this.user) {
+          document.getElementById('session-button').focus();
+        } else {
+          document.getElementById('login-button').focus();
+        }
+      }
+    });
   }
 
   getTime(time: Date) {
@@ -116,8 +139,7 @@ export class HeaderComponent implements OnInit {
 
   openDeleteUserDialog() {
     const dialogRef = this.dialog.open(DeleteAccountComponent, {
-      width: '600px',
-      autoFocus: false
+      width: '600px'
     });
     dialogRef.afterClosed()
       .subscribe(result => {
@@ -129,4 +151,18 @@ export class HeaderComponent implements OnInit {
       });
   }
 
+  cookiesDisabled(): boolean {
+    return localStorage.getItem('cookieAccepted') === 'false';
+  }
+
+  /*Rescale*/
+
+  /**
+   * Access to static Rescale from AppComponent
+   * returns Rescale from AppComponent
+   */
+  public getRescale(): Rescale {
+    return AppComponent.rescale;
+  }
+
 }
diff --git a/src/app/components/shared/login/login.component.html b/src/app/components/shared/login/login.component.html
index d4566622d61b260576aabb9de1f9686c6b9e1694..c5ba17d4665cc69c795a8418f3cd3c1af917abd6 100644
--- a/src/app/components/shared/login/login.component.html
+++ b/src/app/components/shared/login/login.component.html
@@ -1,11 +1,13 @@
-<form fxLayout="column" fxLayoutAlign="space-around" fxLayoutGap="5px">
-  <button (click)="guestLogin()" class="guest" mat-raised-button type="button"
-          matTooltip="{{'login.guest-login-tooltip' | translate}}">
-    {{ 'login.guest-login' | translate }}
-  </button>
+<form
+  fxLayout="column"
+  fxLayoutGap="10px"
+  (ngSubmit)="login(userEmail.value, userPassword.value)"
+  >
   <mat-form-field class="input-block">
-    <input #userEmail [errorStateMatcher]="matcher" [formControl]="usernameFormControl" matInput
-           name="username" placeholder="{{ 'login.email' | translate }}"/>
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           #userEmail [errorStateMatcher]="matcher" [formControl]="usernameFormControl" matInput
+           name="username" aria-labelledby="email-description"/>
+    <mat-placeholder class="placeholder">{{ 'login.email' | translate }}</mat-placeholder>
     <mat-error *ngIf="usernameFormControl.hasError('email') && !usernameFormControl.hasError('required')">
       {{ 'login.email-invalid' | translate }}
     </mat-error>
@@ -14,22 +16,44 @@
     </mat-error>
   </mat-form-field>
   <mat-form-field>
-    <input #userPassword [errorStateMatcher]="matcher" [formControl]="passwordFormControl" matInput
-           name="password" placeholder="{{ 'login.password' | translate }}" type="password"/>
+    <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()"
+           #userPassword [errorStateMatcher]="matcher" [formControl]="passwordFormControl" matInput
+           name="password" type="password" aria-labelledby="password-description"/>
+    <mat-placeholder class="placeholder">{{ 'login.password' | translate }}</mat-placeholder>
     <mat-error *ngIf="passwordFormControl.hasError('required')">{{ 'login.password-required' | translate }}</mat-error>
   </mat-form-field>
-  <button (click)="login(userEmail.value, userPassword.value)" mat-raised-button
-          matTooltip="{{'login.login-tooltip' | translate}}">{{ 'login.login' | translate }}</button>
-  <div>
-    <button (click)="openPasswordDialog()" class="pwReset" mat-button>
-      {{ 'login-page.password-reset' | translate }}
-    </button>
-  </div>
-  <div fxLayout="row" class="register">
-    <span class="fill-remaining-space"></span>
-    <p>{{ 'login-page.not-registered' | translate }}</p>
-    <button (click)="openRegisterDialog()" class="regButton" mat-button>
-      {{ 'login-page.register' | translate }}
-    </button>
+  <button id="focus_button_user" class="login" mat-flat-button type="submit" aria-labelledby="login-description">
+    {{ 'login.login' | translate }}
+  </button>
+  <button id="focus_button_guest" (click)="guestLogin()" class="guest" mat-flat-button type="button" aria-labelledby="guest-login-description"
+          matTooltip="{{'login.guest-login-tooltip' | translate}}">
+    {{ 'login.guest-login' | translate }}
+  </button>
+  <div class="forgot-password">
+    <a
+      href=""
+      (click)="openPasswordDialog(); $event.preventDefault(); $event.stopPropagation();"
+      role="button"
+    >
+      {{ 'login.password-reset' | translate }}
+    </a>
   </div>
 </form>
+<mat-divider></mat-divider>
+<div fxLayout="row" class="register">
+  <p>{{ 'login.not-registered' | translate }}</p>
+  <a href="" class="registerBtn" (click)="openRegisterDialog(); $event.preventDefault(); $event.stopPropagation();">
+    {{ 'login.register' | translate }}</a>
+</div>
+<app-dialog-action-buttons
+  [spacing]="false"
+  buttonsLabelSection="login"
+  [cancelButtonClickAction]="buildCloseDialogActionCallback()"
+></app-dialog-action-buttons>
+
+<div class="visually-hidden">
+  <div id="email-description">{{ 'login.email-description' | translate }}</div>
+  <div id="password-description">{{ 'login.password-description' | translate }}</div>
+  <div id="login-description">{{ 'login.login-description' | translate }}</div>
+  <div id="guest-login-description">{{ 'login.guest-login-description' | translate }}</div>
+</div>
diff --git a/src/app/components/shared/login/login.component.scss b/src/app/components/shared/login/login.component.scss
index 203c0e9612bf9ababe812bc7314dcd3abbef00ce..66dd3af1aad78ae91a292dd57ff8c09db2bc424f 100644
--- a/src/app/components/shared/login/login.component.scss
+++ b/src/app/components/shared/login/login.component.scss
@@ -4,20 +4,33 @@
 }
 
 .regButton {
-  padding: 0;
-  margin: 0 10px 0 0;
   color: var(--secondary);
 }
 
 .guest {
   background-color: var(--primary);
   color: var(--on-primary);
-  margin: 10px 0 20px 0!important;
+  margin-bottom: 10px;
+}
+
+.login {
+  background-color: var(--secondary);
+  color: var(--on-secondary);
+}
+
+.forgot-password {
+  margin-bottom: 1.6rem;
+}
+
+.forgot-password a {
+  text-decoration: underline;
+  color: var(--secondary);
+  font-size: .9rem;
 }
 
 p {
   font-size: small;
-  margin: 15px 5px 0 0;
+  margin: 13px 10px 0 0;
   color: var(--on-surface);
   vertical-align: text-bottom;
 }
@@ -57,6 +70,31 @@ h3 {
 }
 
 .register {
-  height: 40px;
+  padding: .5rem 0;
+  align-items: baseline;
 }
 
+.registerBtn{
+  text-decoration:underline;
+  color:var(--on-surface);
+  cursor:pointer;
+  font-size:small;
+}
+
+.visually-hidden {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  left: -10000px;
+}
+
+#focus_button_user:focus {
+  background: var(--on-surface);
+  color: var(--background);
+}
+
+#focus_button_guest:focus {
+  background: var(--on-surface);
+  color: var(--background);
+}
diff --git a/src/app/components/shared/login/login.component.ts b/src/app/components/shared/login/login.component.ts
index 2543871737091bc0acb4db556db676a17be3547d..9135b1532332c596a51f5fcfd1f826ac9e8cee19 100644
--- a/src/app/components/shared/login/login.component.ts
+++ b/src/app/components/shared/login/login.component.ts
@@ -9,6 +9,7 @@ import { TranslateService } from '@ngx-translate/core';
 import { UserActivationComponent } from '../../home/_dialogs/user-activation/user-activation.component';
 import { PasswordResetComponent } from '../../home/_dialogs/password-reset/password-reset.component';
 import { RegisterComponent } from '../../home/_dialogs/register/register.component';
+import { EventService } from '../../../services/util/event.service';
 
 export class LoginErrorStateMatcher implements ErrorStateMatcher {
   isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
@@ -40,6 +41,7 @@ export class LoginComponent implements OnInit, OnChanges {
               private translationService: TranslateService,
               public notificationService: NotificationService,
               public dialog: MatDialog,
+              public eventService: EventService,
               @Inject(MAT_DIALOG_DATA) public data: any) {
   }
 
@@ -131,4 +133,20 @@ export class LoginComponent implements OnInit, OnChanges {
       }
     });
   }
+
+
+  /**
+   * Returns a lambda which closes the dialog on call.
+   */
+  buildCloseDialogActionCallback(): () => void {
+    return () => this.dialog.closeAll();
+  }
+
+
+  /**
+   * Returns a lambda which executes the dialog dedicated action on call.
+   */
+  buildLoginActionCallback(userEmail: HTMLInputElement, userPassword: HTMLInputElement): () => void {
+    return () => this.login(userEmail.value, userPassword.value);
+  }
 }
diff --git a/src/app/components/shared/room-join/room-join.component.html b/src/app/components/shared/room-join/room-join.component.html
index 272b5d5a892782a9117b8a0c47f1d11f90320639..cbbb17f8ff9816cc2bc404d0cb8896c71634c494 100644
--- a/src/app/components/shared/room-join/room-join.component.html
+++ b/src/app/components/shared/room-join/room-join.component.html
@@ -2,18 +2,31 @@
 <form (ngSubmit)="joinRoom(roomId.value)">
   <div fxLayout="row" fxLayoutAlign="center" fxLayoutGap="10px">
     <mat-form-field (keyup.enter)="onEnter()">
-      <input matInput #roomId type="text" pattern="[0-9 ]*" inputmode="numeric" min="00000000" max="99999999"
-             onkeydown="if(this.value.length - (this.value.split(' ').length -1) === 8 && event.keyCode != 8) return false;
-                        if(this.value.length === 4 && event.keyCode != 8) this.value = this.value + ' ';"
-                        [formControl]="roomFormControl" [errorStateMatcher]="matcher"/>
-      <mat-placeholder class="placeholder">Session ID</mat-placeholder>
-      <mat-hint align="end">{{ roomId.value.length - (roomId.value.split(' ').length -1) }} / 8</mat-hint>
-      <mat-error *ngIf="roomFormControl.hasError('required')">{{ 'home-page.please-enter' | translate}}</mat-error>
+      <input
+        id="session_id-input"
+        matInput
+        #roomId
+        (focus)="eventService.makeFocusOnInputTrue()"
+        (blur)="eventService.makeFocusOnInputFalse()"
+        type="text" pattern="[0-9 ]*" inputmode="numeric" min="00000000" max="99999999"
+        (keydown)="prettifySessionCode($event)"
+        [formControl]="roomFormControl"
+        [errorStateMatcher]="matcher"
+        aria-labelledby="join-input-label"
+      />
+      <mat-placeholder class="placeholder">{{ 'home-page.session-id' | translate}}</mat-placeholder>
+      <mat-hint align="end"><span aria-hidden="true">{{ roomId.value.length - (roomId.value.split(' ').length -1) }} / 8</span></mat-hint>
+      <mat-error *ngIf="roomFormControl.hasError('required')" aria-hidden="true">{{ 'home-page.please-enter' | translate}}</mat-error>
       <mat-error *ngIf="roomFormControl.hasError('pattern')">{{ 'home-page.only-numbers' | translate}}</mat-error>
     </mat-form-field>
-    <button mat-fab type="submit">
+    <button [disabled]="cookiesDisabled()" id="session_enter-button" mat-fab type="submit" aria-labelledby="join-button-label">
       <mat-icon>input</mat-icon>
     </button>
   </div>
 </form>
 </div>
+
+<div class="visually-hidden">
+  <div id="join-input-label">{{ 'home-page.accessibility-join-input' | translate }}</div>
+  <div id="join-button-label">{{ 'home-page.accessibility-join-button' | translate }}</div>
+</div>
diff --git a/src/app/components/shared/room-join/room-join.component.scss b/src/app/components/shared/room-join/room-join.component.scss
index 4dd2e68f3da2760ec2e7f92238792ef7f5f60c3c..74919f9260c22b704682d9e440a10c68217cc5f1 100644
--- a/src/app/components/shared/room-join/room-join.component.scss
+++ b/src/app/components/shared/room-join/room-join.component.scss
@@ -4,7 +4,11 @@ mat-form-field {
 }
 
 input {
-  caret-color: var(--on-surface);
+  caret-color:var(--on-surface);
+}
+
+input:focus{
+  caret-color:var(--on-surface);
 }
 
 form {
@@ -50,3 +54,12 @@ input:-webkit-autofill {
   -webkit-box-shadow:0 0 0 50px var(--surface) inset;
   -webkit-text-fill-color: var(--on-surface);
 }
+
+mat-error{
+  color:var(--on-surface);
+}
+
+#session_enter-button:focus {
+  background: var(--on-surface);
+  color: var(--background);
+}
diff --git a/src/app/components/shared/room-join/room-join.component.ts b/src/app/components/shared/room-join/room-join.component.ts
index 44fbb5e11644026f7ac130026244e5472ddfe2a7..0603afc0c17073ad57a80c2f18945cd9cf637901 100644
--- a/src/app/components/shared/room-join/room-join.component.ts
+++ b/src/app/components/shared/room-join/room-join.component.ts
@@ -11,6 +11,9 @@ import { UserRole } from '../../../models/user-roles.enum';
 import { User } from '../../../models/user';
 import { Moderator } from '../../../models/moderator';
 import { ModeratorService } from '../../../services/http/moderator.service';
+import { EventService } from '../../../services/util/event.service';
+import { KeyboardUtils } from '../../../utils/keyboard';
+import { KeyboardKey } from '../../../utils/keyboard/keys';
 
 @Component({
   selector: 'app-room-join',
@@ -33,7 +36,8 @@ export class RoomJoinComponent implements OnInit {
     public notificationService: NotificationService,
     private translateService: TranslateService,
     public authenticationService: AuthenticationService,
-    private moderatorService: ModeratorService
+    private moderatorService: ModeratorService,
+    public eventService: EventService
   ) {
   }
 
@@ -114,4 +118,30 @@ export class RoomJoinComponent implements OnInit {
       });
     }
   }
+
+  cookiesDisabled(): boolean {
+    return localStorage.getItem('cookieAccepted') === 'false';
+  }
+
+
+  /**
+   * Prettifies the session code input element which:
+   *
+   * - casts a 'xxxx xxxx' layout to the input field
+   */
+  prettifySessionCode(keyboardEvent: KeyboardEvent): void {
+    const sessionCode: string = this.roomIdElement.nativeElement.value;
+    const isBackspaceKeyboardEvent: boolean = KeyboardUtils.isKeyEvent(keyboardEvent, KeyboardKey.Backspace);
+
+    // allow only backspace key press after all 8 digits were entered by the user
+    if (
+      sessionCode.length - (sessionCode.split(' ').length - 1) === 8 &&
+      isBackspaceKeyboardEvent === false
+    ) {
+      keyboardEvent.preventDefault();
+      keyboardEvent.stopPropagation();
+    } else if (sessionCode.length === 4 && isBackspaceKeyboardEvent === false) { // add a space between each 4 digit group
+      this.roomIdElement.nativeElement.value += ' ';
+    }
+  }
 }
diff --git a/src/app/components/shared/room-list/room-list.component.html b/src/app/components/shared/room-list/room-list.component.html
index f210c6ce53ae221048703137fca1c7553ea9c76f..4ebab81ade0a74cfddf22ff409938b8a86b0d250 100644
--- a/src/app/components/shared/room-list/room-list.component.html
+++ b/src/app/components/shared/room-list/room-list.component.html
@@ -4,33 +4,113 @@
   </div>
 </div>
 
-<div *ngIf="roomsWithRole && roomsWithRole.length != 0">
-  <mat-expansion-panel [disabled]="true" class="matPanel">
-    <mat-expansion-panel-header>
-      <mat-panel-title class="headerTitle">Session</mat-panel-title>
-      <mat-panel-description class="headerTitle">ID</mat-panel-description>
-      <mat-panel-description class="roleTitle">Role</mat-panel-description>
-      <mat-panel-description class="buttonTitle"></mat-panel-description>
-    </mat-expansion-panel-header>
-  </mat-expansion-panel>
-  <mat-expansion-panel *ngFor="let room of roomsWithRole" class="matPanel" [disabled]="true">
-    <mat-expansion-panel-header>
-      <mat-panel-title class="headerTitle">
-        {{ room.name }}
-      </mat-panel-title>
-      <mat-panel-description class="headerTitle">
-        {{ room.shortId.slice(0,4) }} {{  room.shortId.slice(4,8) }}
-      </mat-panel-description>
-      <mat-panel-description class="roleTitle" [ngSwitch]="room.role">
-        <mat-icon *ngSwitchCase="creatorRole">record_voice_over</mat-icon>
-        <mat-icon *ngSwitchCase="participantRole">face</mat-icon>
-        <mat-icon *ngSwitchCase="executiveModeratorRole">gavel</mat-icon>
-      </mat-panel-description>
-      <mat-panel-description class="buttonTitle" fxLayoutAlign="end">
-        <button mat-flat-button routerLink="/{{ roleToString(room.role) }}/room/{{ room.shortId }}" (click)="setCurrentRoom(room.shortId)">
-          <mat-icon>input</mat-icon>
-        </button>
-      </mat-panel-description>
-    </mat-expansion-panel-header>
-  </mat-expansion-panel>
+<div *ngIf="roomsWithRole">
+  <mat-divider></mat-divider>
+  <div *ngIf="tableDataSource.data.length === 0" aria-labelledby="emptySessionHistoryLabel">
+    <h3>{{ 'room-list.no-room-history' | translate }}</h3>
+  </div>
+
+  <div *ngIf="tableDataSource.data.length > 0">
+
+    <!-- filter input -->
+    <mat-form-field class="filterWrapper">
+      <input (focus)="eventService.makeFocusOnInputTrue()" (blur)="eventService.makeFocusOnInputFalse()" matInput (keyup)="applyFilter($event.target.value)"
+             class="filter"
+             attr.aria-labelledby="sessionHistoryLabel{{ this.rooms.length === 1 ? '1' : '' }}"/>
+      <mat-placeholder class="placeholder">{{ 'room-list.filter-message' | translate }}</mat-placeholder>
+    </mat-form-field>
+
+    <div [class.tableOverflow]="this.tableDataSource.data.length > 5">
+      <table #roomTable mat-table [dataSource]="tableDataSource" style="width: 100%">
+
+        <!-- Room / Session name column -->
+        <ng-container matColumnDef="name" aria-hidden="true">
+          <th mat-header-cell *matHeaderCellDef style="width: 35%">
+            {{ 'room-list.panel-session-name' | translate }}
+          </th>
+          <td mat-cell *matCellDef="let room">
+            {{ room.name }}
+          </td>
+        </ng-container>
+
+        <!-- Session ID column -->
+        <ng-container matColumnDef="shortId" aria-hidden="true">
+          <th mat-header-cell *matHeaderCellDef style="width: 30%">
+            {{ 'room-list.panel-session-id' | translate }}
+          </th>
+          <td mat-cell *matCellDef="let room">
+            {{ room.shortId.slice(0,4) }} {{ room.shortId.slice(4,8) }}
+          </td>
+        </ng-container>
+
+        <!-- Role column -->
+        <ng-container matColumnDef="role" aria-hidden="true">
+          <th mat-header-cell *matHeaderCellDef style="width: 15%">
+            {{ 'room-list.panel-user-role' | translate }}
+          </th>
+          <td mat-cell *matCellDef="let room" [ngSwitch]="room.role">
+            <mat-icon mat-list-icon *ngSwitchCase="creatorRole"
+                      title="{{ 'room-list.creator-role' | translate }}">
+              record_voice_over
+            </mat-icon>
+            <mat-icon mat-list-icon *ngSwitchCase="participantRole"
+                      title="{{ 'room-list.participant-role' | translate }}">
+              people
+            </mat-icon>
+            <mat-icon mat-list-icon *ngSwitchCase="executiveModeratorRole"
+                      title="{{ 'room-list.executive-moderator-role' | translate }}">
+              gavel
+            </mat-icon>
+          </td>
+        </ng-container>
+
+        <!-- Join button column -->
+        <ng-container matColumnDef="button">
+          <th mat-header-cell *matHeaderCellDef style="width: 20%; text-align: end">
+            {{ 'room-list.panel-join-button' | translate }}
+          </th>
+          <td mat-cell *matCellDef="let room" style="text-align: end"
+              attr.aria-labelledby="empty">
+            <button mat-flat-button type="button"
+                    attr.aria-labelledby="{{ 'joinButtonLabel' + room.shortId | translate }}"
+                    name="{{ 'room-list.panel-join-button' | translate }}"
+                    routerLink="/{{ roleToString((room.role)) }}/room/{{ room.shortId }}"
+                    (click)="setCurrentRoom(room.shortId)">
+              <mat-icon>input</mat-icon>
+            </button>
+            <div class="visually-hidden">
+              <div id="{{ 'joinButtonLabel' + room.shortId | translate }}">
+                {{ 'room-list.join-message-template' | translate:{
+                  session: room.name,
+                  id: room.shortId,
+                  role: ( 'room-list.' + roleToString((room.role)) + '-role' | translate )
+              } }}
+              </div>
+            </div>
+          </td>
+        </ng-container>
+
+        <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
+        <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
+
+      </table>
+
+    </div>
+  </div>
+
+</div>
+
+<div class="visually-hidden">
+  <div id="emptySessionHistoryLabel">{{ 'room-list.no-room-history' | translate }}</div>
+  <div id="sessionHistoryLabel">
+    {{ 'room-list.session-history-label' | translate }}
+    {{ 'room-list.session-history' | translate:{ count: this.rooms.length } }}
+    {{ 'room-list.filter' | translate }}
+  </div>
+  <div id="sessionHistoryLabel1">
+    {{ 'room-list.session-history-label' | translate }}
+    {{ 'room-list.session-history-1' | translate }}
+    {{ 'room-list.filter' | translate }}
+  </div>
+  <div id="empty"></div>
 </div>
diff --git a/src/app/components/shared/room-list/room-list.component.scss b/src/app/components/shared/room-list/room-list.component.scss
index 7321b41a6653f0e36073bc39d8026427be574b14..afcff919313f9073b37b723cff4862fe8deba2dd 100644
--- a/src/app/components/shared/room-list/room-list.component.scss
+++ b/src/app/components/shared/room-list/room-list.component.scss
@@ -4,49 +4,65 @@ button {
   transform: scale(0.9);
 }
 
-.mat-expansion-panel-header-description {
-  align-items: center;
+.filterWrapper {
+  width: 100%;
 }
 
-.matPanel {
-  background-color: var(--primary-variant);
-  margin-bottom: 5px;
+.filter {
   color: var(--on-surface)!important;
 }
 
-mat-expansion-panel-header {
-  padding: 0 3% 0 3%;
+h2, h3 {
+  color: var(--on-surface)!important;
+}
+
+table, th, tr, td {
   background-color: var(--primary-variant) !important;
+  color: var(--on-surface)!important;
 }
 
-mat-panel-title {
-  flex-grow: 3;
-  align-items: center;
-  min-width: 80px;
-  margin: 0;
+th {
+  font-size: 1rem;
 }
 
-mat-panel-description {
-  flex-grow: 1;
-  align-items: center!important;
-  margin: 0;
+.tableOverflow {
+  height: 20rem;
+  overflow: auto;
 }
 
-.headerTitle {
+.sessionName {
   width: 8%;
   min-width: 50px;
   color: var(--on-surface)!important;
 }
 
-mat-progress-spinner {
-  margin-top: 30px;
+.sessionId {
+  width: 8%;
+  min-width: 50px;
+  color: var(--on-surface)!important;
 }
 
-.roleTitle {
+.roleName {
   color: var(--on-surface)!important;
   width: 5%;
 }
 
-.buttonTitle {
+.buttonName {
+  color: var(--on-surface)!important;
   width: 5%;
+  display: flex;
+  place-content: stretch flex-end;
+}
+
+.noRoomHistory {
+  color: var(--on-surface)!important;
+  font-style: italic;
+}
+
+.visually-hidden {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  left: -10000px;
 }
diff --git a/src/app/components/shared/room-list/room-list.component.ts b/src/app/components/shared/room-list/room-list.component.ts
index e8a5839d6714daafbcfc8a92c225c62d4e25636d..e70c9bc5a9bce3977d941609bce2a9894594ab30 100644
--- a/src/app/components/shared/room-list/room-list.component.ts
+++ b/src/app/components/shared/room-list/room-list.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit, Input } from '@angular/core';
+import { Component, Input, OnInit } from '@angular/core';
 import { Room } from '../../../models/room';
 import { RoomRoleMixin } from '../../../models/room-role-mixin';
 import { User } from '../../../models/user';
@@ -8,6 +8,7 @@ import { RoomService } from '../../../services/http/room.service';
 import { EventService } from '../../../services/util/event.service';
 import { AuthenticationService } from '../../../services/http/authentication.service';
 import { ModeratorService } from '../../../services/http/moderator.service';
+import { MatTableDataSource } from '@angular/material';
 
 @Component({
   selector: 'app-room-list',
@@ -21,6 +22,9 @@ export class RoomListComponent implements OnInit {
   closedRooms: Room[];
   isLoading = true;
 
+  tableDataSource: MatTableDataSource<Room>;
+  displayedColumns: string[] = ['name', 'shortId', 'role', 'button'];
+
   creatorRole = UserRole.CREATOR;
   participantRole = UserRole.PARTICIPANT;
   executiveModeratorRole = UserRole.EXECUTIVE_MODERATOR;
@@ -36,7 +40,7 @@ export class RoomListComponent implements OnInit {
   ngOnInit() {
     this.getRooms();
     this.eventService.on<any>('RoomDeleted').subscribe(payload => {
-      this.rooms = this.rooms.filter(r => r.id !== payload.id);
+      this.roomsWithRole = this.roomsWithRole.filter(r => r.id !== payload.id);
     });
   }
 
@@ -65,8 +69,10 @@ export class RoomListComponent implements OnInit {
         });
       }
       return roomWithRole;
-    });
+    }).sort((a, b) => 0 - (a.name.toLowerCase() < b.name.toLowerCase() ? 1 : -1));
     this.isLoading = false;
+
+    this.updateTable();
   }
 
   setCurrentRoom(shortId: string) {
@@ -88,4 +94,12 @@ export class RoomListComponent implements OnInit {
         return 'moderator';
     }
   }
+
+  updateTable(): void {
+    this.tableDataSource = new MatTableDataSource(this.roomsWithRole);
+  }
+
+  applyFilter(filterValue: string): void {
+    this.tableDataSource.filter = filterValue.trim().toLowerCase();
+  }
 }
diff --git a/src/app/components/shared/shared.module.ts b/src/app/components/shared/shared.module.ts
index ed95e571c6a61c9b388dd276026f90d848afd29d..215e162dc5b3f7945410fe3b26c3f9927776a885 100644
--- a/src/app/components/shared/shared.module.ts
+++ b/src/app/components/shared/shared.module.ts
@@ -25,13 +25,16 @@ import { CommentComponent } from './comment/comment.component';
 import { CreateCommentComponent } from './_dialogs/create-comment/create-comment.component';
 import { PresentCommentComponent } from './_dialogs/present-comment/present-comment.component';
 import { DeleteAccountComponent } from './_dialogs/delete-account/delete-account.component';
+import { DialogActionButtonsComponent } from './dialog/dialog-action-buttons/dialog-action-buttons.component';
+import { MatRippleModule } from '@angular/material';
 
 @NgModule({
   imports: [
     CommonModule,
     EssentialsModule,
     ChartsModule,
-    SharedRoutingModule
+    SharedRoutingModule,
+    MatRippleModule
   ],
   declarations: [
     RoomJoinComponent,
@@ -56,7 +59,8 @@ import { DeleteAccountComponent } from './_dialogs/delete-account/delete-account
     CommentComponent,
     CreateCommentComponent,
     PresentCommentComponent,
-    DeleteAccountComponent
+    DeleteAccountComponent,
+    DialogActionButtonsComponent
   ],
   exports: [
     RoomJoinComponent,
@@ -75,7 +79,8 @@ import { DeleteAccountComponent } from './_dialogs/delete-account/delete-account
     StatisticsPageComponent,
     CreateCommentComponent,
     PresentCommentComponent,
-    CommentComponent
+    CommentComponent,
+    DialogActionButtonsComponent
   ],
   entryComponents: [
     RoomCreateComponent,
diff --git a/src/app/components/shared/statistics-page/statistics-page.component.ts b/src/app/components/shared/statistics-page/statistics-page.component.ts
index a3d351e124534c49f5c130b897058312a5335a3e..6c9ea0d52cadfb06cb95800b7db703d01ba535e4 100644
--- a/src/app/components/shared/statistics-page/statistics-page.component.ts
+++ b/src/app/components/shared/statistics-page/statistics-page.component.ts
@@ -44,7 +44,6 @@ export class StatisticsPageComponent implements OnInit {
 
   getRoom(id: string): void {
     this.roomService.getRoom(id).subscribe(room => {
-      this.contentGroups = room.contentGroups;
       if (this.contentGroups) {
         if (this.currentCG) {
           for (let i = 0; i < this.contentGroups.length; i++) {
diff --git a/src/app/models/rescale.ts b/src/app/models/rescale.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fdcd5e14cd7d42f00072959c428923b0e2ec58f8
--- /dev/null
+++ b/src/app/models/rescale.ts
@@ -0,0 +1,168 @@
+import { KeyboardUtils } from '../utils/keyboard';
+import { KeyboardKey } from '../utils/keyboard/keys';
+
+export class Rescale {
+
+  public scale = 1;
+  public cachedScale = 1;
+  private f;
+  public defaultScale = 1;
+
+  private state = 0;
+
+  public setDefaultScale(defaultScale: number) {
+    this.scale = defaultScale;
+    this.defaultScale = defaultScale;
+    this.scaleUpdate();
+  }
+
+  public scaleUp() {
+    this.setScale(this.scale + 0.1);
+  }
+
+  public scaleDown() {
+    this.setScale(this.scale - 0.1);
+  }
+
+  public scaleUndo() {
+    this.setScale(this.defaultScale);
+  }
+
+  public setScale(scale: number) {
+    this.scale = scale;
+    if (this.scale < 0.1) {
+      this.scale = 0.1;
+    } else if (this.scale > 2) {
+      this.scale = 2;
+    }
+    this.scaleUpdate();
+  }
+
+  public setInitialScale(scale: number) {
+    this.cachedScale = scale;
+  }
+
+  private scaleUpdate() {
+    document.getElementById('rescale_screen').style.zoom = this.scale + '';
+  }
+
+  public toggleState() {
+    this.state++;
+    if (this.state >= 3) {
+      this.state = 0;
+    }
+    this.updateState();
+  }
+
+  public toggleBetweenRescale() {
+    if (this.state === 1) {
+      this.activateFull();
+    } else if (this.state === 2) {
+      this.activate();
+    }
+  }
+
+  public getState(): number {
+    return this.state;
+  }
+
+  private updateState() {
+    switch (this.state) {
+      case 0:
+        this.reset();
+        document.exitFullscreen();
+        break;
+      case 1:
+        this.activate();
+        break;
+      case 2:
+        this.activateFull();
+        document.body.requestFullscreen();
+        break;
+      default: break;
+    }
+  }
+
+  public reset() {
+    window.removeEventListener('keydown', this.f);
+    this.f = null;
+    this.cachedScale = this.scale;
+    this.scaleUpdate();
+    this.toggleHeader(true);
+    this.toggleFooter(true);
+    this.toggleRescaler(false);
+    this.state = 0;
+  }
+
+  public activate() {
+    this.createKeyListener();
+    this.setScale(this.cachedScale);
+    this.toggleHeader(true);
+    this.toggleFooter(true);
+    this.setOffsetRescaler(0, 75);
+    this.toggleRescaler(true);
+    this.state = 1;
+  }
+
+  public activateFull() {
+    this.createKeyListener();
+    this.toggleHeader(false);
+    this.toggleFooter(false);
+    this.setOffsetRescaler(0, 15);
+    this.toggleRescaler(true);
+    this.state = 2;
+  }
+
+  private createKeyListener() {
+    if (!this.f) {
+      window.addEventListener('keydown', this.f = e => {
+        if (KeyboardUtils.isKeyEvent(e, KeyboardKey.Escape)) {
+          this.state--;
+          this.updateState();
+        }
+      });
+    }
+  }
+
+  private toggleHeader(b: boolean) {
+    if (b) {
+      this.getElem('header_rescale').style.display = 'block';
+      setTimeout(() => {
+        this.getElem('header_rescale').style.top = '0px';
+      }, 1);
+    } else {
+      this.getElem('header_rescale').style.top = '-60px';
+      setTimeout(() => {
+        this.getElem('header_rescale').style.display = 'none';
+      }, 200);
+    }
+  }
+
+  private toggleFooter(b: boolean) {
+    if (b) {
+      this.getElem('footer_rescale').style.display = 'block';
+      setTimeout(() => {
+        this.getElem('footer_rescale').style.bottom = '0px';
+      }, 1);
+    } else {
+      this.getElem('footer_rescale').style.bottom = '-60px';
+      setTimeout(() => {
+        this.getElem('footer_rescale').style.display = 'none';
+      }, 200);
+    }
+  }
+
+  private getElem(name: string): HTMLElement {
+    return document.getElementById(name);
+  }
+
+  private toggleRescaler(b: boolean) {
+    this.getElem('overlay_rescale').style.display = (b ? 'block' : 'none');
+  }
+
+  private setOffsetRescaler(x: number, y: number) {
+    document.getElementById('overlay_rescale').style.left = x + 'px';
+    document.getElementById('overlay_rescale').style.top = y + 'px';
+  }
+
+}
diff --git a/src/app/models/room.ts b/src/app/models/room.ts
index 1ce435e6e64017bea7e59d6953d8ac4728fb4cbb..fb1c4f9a2e8e8df3e19b55f664f48bcd3a739250 100644
--- a/src/app/models/room.ts
+++ b/src/app/models/room.ts
@@ -1,4 +1,3 @@
-import { ContentGroup } from './content-group';
 import { TSMap } from 'typescript-map';
 
 export class Room {
@@ -10,7 +9,6 @@ export class Room {
   name: string;
   description: string;
   closed: boolean;
-  contentGroups: ContentGroup[];
   extensions: TSMap<string, TSMap<string, any>>;
 
   constructor(
@@ -20,7 +18,6 @@ export class Room {
     name: string = '',
     description: string = '',
     closed: boolean = false,
-    contentGroups: ContentGroup[] = [],
     extensions: TSMap<string, TSMap<string, any>> = new TSMap()
   ) {
     this.id = '',
@@ -30,7 +27,6 @@ export class Room {
     this.name = name,
     this.description = description;
     this.closed = closed;
-    this.contentGroups = contentGroups;
     this.extensions = extensions;
   }
 }
diff --git a/src/app/services/http/authentication.service.ts b/src/app/services/http/authentication.service.ts
index e9af9b7e020cb89d01fb954cf79783d37bb5d4e0..2af8374fd5526ac11c864956a6f501c7b40f6600 100644
--- a/src/app/services/http/authentication.service.ts
+++ b/src/app/services/http/authentication.service.ts
@@ -120,6 +120,25 @@ export class AuthenticationService {
     );
   }
 
+  setNewPassword(email: string, key: string, password: string): Observable<boolean> {
+    const connectionUrl: string =
+        this.apiUrl.v2 +
+        this.apiUrl.user +
+        '/' +
+        email +
+        this.apiUrl.resetPassword +
+        `?key=${key}&password=${password}`;
+
+    return this.http.post(connectionUrl, {
+    }, this.httpOptions).pipe(
+      catchError(err => {
+        return of(false);
+      }), map((result) => {
+        return true;
+      })
+    );
+  }
+
   logout() {
     // Destroy the persisted user data
     this.dataStoreService.remove(this.STORAGE_KEY);
diff --git a/src/app/services/http/room.service.ts b/src/app/services/http/room.service.ts
index 333519ec3a924b482e1c661012a3df3259f4026f..3dc8aaa040354da6e678c0b959a537cd11df71d5 100644
--- a/src/app/services/http/room.service.ts
+++ b/src/app/services/http/room.service.ts
@@ -80,7 +80,6 @@ export class RoomService extends BaseHttpService {
     const connectionUrl = `${ this.apiUrl.base +  this.apiUrl.rooms }/${ id }`;
     return this.http.get<Room>(connectionUrl).pipe(
       map(room => this.parseExtensions(room)),
-      map(room => this.parseDefaultContentGroup(room)),
       tap(room => this.setRoomId(room)),
       catchError(this.handleError<Room>(`getRoom keyword=${ id }`))
     );
@@ -90,7 +89,6 @@ export class RoomService extends BaseHttpService {
     const connectionUrl = `${ this.apiUrl.base +  this.apiUrl.rooms }/~${ shortId }`;
     return this.http.get<Room>(connectionUrl).pipe(
       map(room => this.parseExtensions(room)),
-      map(room => this.parseDefaultContentGroup(room)),
       tap(room => this.setRoomId(room)),
       catchError(this.handleError<Room>(`getRoom shortId=${ shortId }`))
     );
@@ -117,17 +115,6 @@ export class RoomService extends BaseHttpService {
     );
   }
 
-  parseDefaultContentGroup(room: Room): Room {
-    if (room.contentGroups) {
-      for (const cg of room.contentGroups) {
-        if (!cg.name || cg.name === '') {
-          cg.name = 'Default';
-        }
-      }
-    }
-    return room;
-  }
-
   parseExtensions(room: Room): Room {
     if (room.extensions) {
       let extensions: TSMap<string, TSMap<string, any>> = new TSMap();
diff --git a/src/app/services/http/user.service.ts b/src/app/services/http/user.service.ts
index 12d1abf33d3aa4aeaad1be5e5ca6d63e79b3e29c..59801a022d57cbf212952d5c3454fcbbf7b1398e 100644
--- a/src/app/services/http/user.service.ts
+++ b/src/app/services/http/user.service.ts
@@ -14,7 +14,9 @@ export class UserService extends BaseHttpService {
   private apiUrl = {
     base: '/api',
     user: '/user',
-    activate: '/activate'
+    activate: '/activate',
+    resetActivation: '/resetactivation',
+    find: '/find'
   };
 
   constructor(private http: HttpClient) {
@@ -29,6 +31,17 @@ export class UserService extends BaseHttpService {
       }, httpOptions);
   }
 
+  resetActivation(username: string): Observable<User> {
+    const connectionUrl: string = this.apiUrl.base +
+        this.apiUrl.user +
+        '/~' + encodeURIComponent(username) +
+        this.apiUrl.resetActivation;
+    return this.http.post<any>(connectionUrl, httpOptions).pipe(
+      tap(_ => ''),
+      catchError(this.handleError<User>('resetActivation'))
+    );
+  }
+
   delete(id: string): Observable<User> {
     const connectionUrl: string = this.apiUrl.base + this.apiUrl.user + '/' + id;
     return this.http.delete<User>(connectionUrl, httpOptions).pipe(
@@ -36,4 +49,15 @@ export class UserService extends BaseHttpService {
       catchError(this.handleError<User>('deleteUser'))
     );
   }
+
+  getIdByLoginId(loginId: string): Observable<User[]> {
+    const url = `${this.apiUrl.base + this.apiUrl.user + this.apiUrl.find}`;
+    return this.http.post<User[]>(url, {
+      properties: { loginId: loginId },
+      externalFilters: {}
+    }).pipe(
+      tap(() => ''),
+      catchError(this.handleError('getUserId', []))
+    );
+  }
 }
diff --git a/src/app/services/util/event.service.ts b/src/app/services/util/event.service.ts
index 243726b1cd79fcb9734a0622d18060626a23afe6..a98e1b05975a078b24c04284759b786985b12118 100644
--- a/src/app/services/util/event.service.ts
+++ b/src/app/services/util/event.service.ts
@@ -9,15 +9,25 @@ interface BroadcastEvent {
 
 export class EventService {
   private _eventBus: Subject<BroadcastEvent>;
+  focusOnInput: boolean;
 
   constructor() {
     this._eventBus = new Subject<BroadcastEvent>();
+    this.focusOnInput = false;
   }
 
   broadcast(key: any, data?: any) {
     this._eventBus.next({ key, data });
   }
 
+  makeFocusOnInputTrue() {
+    this.focusOnInput = true;
+  }
+
+  makeFocusOnInputFalse() {
+    this.focusOnInput = false;
+  }
+
   on<T>(key: any): Observable<T> {
     return this._eventBus.asObservable().pipe(
       filter(event => event.key === key),
diff --git a/src/app/services/util/notification.service.ts b/src/app/services/util/notification.service.ts
index 2c98c2d98faeadeb2c50c8be7e74c49ebbe1e86a..9bbbe09f363b3580c8e3a8f26057e8b93d447c0d 100644
--- a/src/app/services/util/notification.service.ts
+++ b/src/app/services/util/notification.service.ts
@@ -3,17 +3,18 @@ import { MatSnackBar, MatSnackBarConfig } from '@angular/material';
 
 @Injectable()
 export class NotificationService {
-  private defaultConfig = {
-    duration: 4000,
-    panelClass: ['snackbar']
-  };
   public snackRef: any;
 
   constructor(public snackBar: MatSnackBar) {
   }
 
   show(message: string, action?: string, config?: MatSnackBarConfig) {
+    const defaultConfig: MatSnackBarConfig = {
+      duration: (action ? 25000 : 7000),
+      panelClass: ['snackbar']
+    };
+
     // Delegate the message and merge the (optionally) passed config with the default config
-    this.snackRef = this.snackBar.open(message, action, Object.assign({}, this.defaultConfig, config));
+    this.snackRef = this.snackBar.open(message, action, Object.assign({}, defaultConfig, config));
   }
 }
diff --git a/src/app/utils/keyboard.ts b/src/app/utils/keyboard.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9509105ad517545a38e4ad49dc11cfff311cfa69
--- /dev/null
+++ b/src/app/utils/keyboard.ts
@@ -0,0 +1,25 @@
+import { KeyboardKey, KEYBOARD_KEYS, IKeyboardKey } from './keyboard/keys';
+
+/**
+ * Contains keyboard processing helper functions.
+ */
+export class KeyboardUtils {
+
+  /**
+   * Checks if the provided keyboard event contains one of the targeted keyboard keys and returns TRUE if so, FALSE otherwise.
+   *
+   * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
+   */
+  public static isKeyEvent(event: KeyboardEvent, ...keys: KeyboardKey[]): boolean {
+    const supportsKeyAttribute: boolean = (event.key !== undefined);
+
+    return keys.filter(key => {
+      const keyDefinition: IKeyboardKey = KEYBOARD_KEYS.get(key);
+
+      return (supportsKeyAttribute === true
+        ? (keyDefinition.key.indexOf(event.key) !== -1) // new browser event
+        : (event.keyCode === keyDefinition.keyCode) // old browser event support
+      );
+    }).length > 0;
+  }
+}
diff --git a/src/app/utils/keyboard/keys.ts b/src/app/utils/keyboard/keys.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ce32162e1df8a76d8004da9ff9c95317dd71b15e
--- /dev/null
+++ b/src/app/utils/keyboard/keys.ts
@@ -0,0 +1,57 @@
+import { TSMap } from 'typescript-map';
+
+// A map of available keyboard keys for the application
+export const KEYBOARD_KEYS: TSMap<KeyboardKey, IKeyboardKey> = new TSMap;
+
+
+/**
+ * A basic keyboard key definition.
+ */
+export interface IKeyboardKey {
+
+  /**
+   * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key
+   */
+  key: string[];
+
+
+  /**
+   * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/which
+   */
+  keyCode: number;
+}
+
+
+/**
+ * Contains some application relevant key bindings to allow easy and semantic usage of keyboard util class.
+ */
+export enum KeyboardKey {
+  Digit0,
+  Digit1,
+  Digit2,
+  Digit3,
+  Digit4,
+  Digit5,
+  Digit6,
+  Digit7,
+  Digit8,
+  Digit9,
+  Escape,
+  Backspace
+}
+
+// Setup all application available keyboard keys here
+// @see https://keycode.info/ for easy keyboard key detection
+KEYBOARD_KEYS.set(KeyboardKey.Digit0,    { key: ['0'], keyCode: 48 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit1,    { key: ['1'], keyCode: 49 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit2,    { key: ['2'], keyCode: 50 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit3,    { key: ['3'], keyCode: 51 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit4,    { key: ['4'], keyCode: 52 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit5,    { key: ['5'], keyCode: 53 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit6,    { key: ['6'], keyCode: 54 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit7,    { key: ['7'], keyCode: 55 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit8,    { key: ['8'], keyCode: 56 });
+KEYBOARD_KEYS.set(KeyboardKey.Digit9,    { key: ['9'], keyCode: 57 });
+KEYBOARD_KEYS.set(KeyboardKey.Backspace, { key: ['Backspace'], keyCode: 8 });
+// older versions of IE have a slightly different ESCAPE Key definition implemented
+KEYBOARD_KEYS.set(KeyboardKey.Escape,    { key: ['Escape', 'Esc'], keyCode: 27 });
diff --git a/src/assets/i18n/cookies/cookies-de.html b/src/assets/i18n/cookies/cookies-de.html
new file mode 100644
index 0000000000000000000000000000000000000000..77e1dc52e8f673cf6b43bf5ef5df503641a0262a
--- /dev/null
+++ b/src/assets/i18n/cookies/cookies-de.html
@@ -0,0 +1,11 @@
+<p>
+  Deine Fragen und Bewertungen sind anonym.
+  Ein »frag.jetzt«-Konto ist nur sinnvoll,
+  wenn du entweder deine Sitzungen für 180 Tage nach dem letzten Besuch speichern
+  oder an einer Sitzung mit Bonusvergabe für interessante Fragen teilnehmen willst.
+  Du kannst dein Konto jederzeit löschen. Wir geben deine Mail-Adresse nicht weiter.
+</p>
+<p>
+  Mit Anklicken des Buttons »Akzeptieren« erklärst du dich mit der Verwendung Local-Storage-Technik sowie unseren Hinweisen zum Datenschutz einverstanden.
+  Diese kannst du über das Datenschutz-Symbol einsehen.
+</p>
diff --git a/src/assets/i18n/cookies/cookies-de.ts b/src/assets/i18n/cookies/cookies-de.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d176bd1e55c22e5dda9126f68d20e59ff584bb92
--- /dev/null
+++ b/src/assets/i18n/cookies/cookies-de.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-cookies-de',
+  templateUrl: './cookies-de.html',
+  styleUrls: ['./cookies.scss']
+})
+
+export class CookiesDeComponent {}
diff --git a/src/assets/i18n/cookies/cookies-en.html b/src/assets/i18n/cookies/cookies-en.html
new file mode 100644
index 0000000000000000000000000000000000000000..9f8390964d4f6adcac4a0cf17dc0502594041aa1
--- /dev/null
+++ b/src/assets/i18n/cookies/cookies-en.html
@@ -0,0 +1,11 @@
+<p>
+  Your questions and votes are anonymous.
+  A »frag.jetzt« account only makes sense,
+  if you either want to save your sessions for 180 days after the last visit
+  or want to participate in a session with bonuses for interesting questions.
+  You can delete your account at any time. We will not share your email address with anyone.
+</p>
+<p>
+  By clicking the button »Accept« you agree to the use of a local storage as well as our privacy policy.
+  You can view these by clicking on the data protection symbol.
+</p>
diff --git a/src/assets/i18n/cookies/cookies-en.ts b/src/assets/i18n/cookies/cookies-en.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2c1bf3ee378998f4006416593a36ab6f5d55338e
--- /dev/null
+++ b/src/assets/i18n/cookies/cookies-en.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-cookies-en',
+  templateUrl: './cookies-en.html',
+  styleUrls: ['./cookies.scss']
+})
+
+export class CookiesEnComponent {}
diff --git a/src/assets/i18n/cookies/cookies.scss b/src/assets/i18n/cookies/cookies.scss
new file mode 100644
index 0000000000000000000000000000000000000000..747f264e1c991f7e07aa8fb9bcfb542d1ba077c9
--- /dev/null
+++ b/src/assets/i18n/cookies/cookies.scss
@@ -0,0 +1,6 @@
+p {
+  word-break: break-word;
+  -ms-hyphens: auto;
+  -webkit-hyphens: auto;
+  hyphens: auto;
+}
diff --git a/src/assets/i18n/creator/de.json b/src/assets/i18n/creator/de.json
index 797e9ce3b29c12053f8d024e402ccd0110beb5e3..2fa0032be2c18501f702a68257221f0b94404ad9 100644
--- a/src/assets/i18n/creator/de.json
+++ b/src/assets/i18n/creator/de.json
@@ -1,144 +1,225 @@
 {
-  "home-page": {
-    "create-session": "Neue Session",
-    "no-empty-name": "Bitte gib einen Namen ein.",
-    "created-1": "Session '",
-    "created-2": "' erfolgreich erstellt."
+  "comment-list": {
+    "a11y-access_time": "Sortiert Fragen nach der Uhrzeit",
+    "a11y-add": "Option eine Frage zu stellen",
+    "a11y-pause": "Stoppt den Fragen -Stream",
+    "a11y-play": "Startet den Fragen-Stream",
+    "a11y-beamer_icon": "Filtert alle besprochenen Fragen",
+    "a11y-check_circle": "Filtert alle bejahten Fragen",
+    "a11y-close": "Hebt alle Filter auf",
+    "a11y-close_search": "Schließt den Suchvorgang von Fragen",
+    "a11y-filter_list": "Option Fragen zu filtern",
+    "a11y-grade": "Filtert alle Bonus Fragen",
+    "a11y-keyboard_arrow_down": "Sortiert die Fragen nach absteigenden Bewertungen",
+    "a11y-keyboard_arrow_up": "Sortiert die Fragen nach aufsteigenden Bewertungen",
+    "a11y-not_interested": "Filtert alle verneinten Fragen",
+    "a11y-search_box": "Gib die gewünschte Frage ein",
+    "a11y-swap_vert": "Option Fragen zu sortieren",
+    "add-comment": "Frage stellen",
+    "pause-comments": "Pausiere den Fragen-Stream",
+    "play-comments": "Starte den Fragen-Stream",
+    "comment-stream-stopped": "Der Fragen-Stream wurde gestoppt.",
+    "comment-stream-started": "Der Fragen-Stream wurde gestartet.",
+    "comment-sent": "Die Frage wurde veröffentlicht.",
+    "comment-deleted": "Die Frage wurde gelöscht.",
+    "correct": "Fragen, die vom Dozenten als richtig markiert wurden",
+    "favorite": "Fragen, die vom Dozenten für einen Bonus markiert wurden",
+    "filter-comments": "Fragen filtern",
+    "filter-correct": "Bejahte Fragen",
+    "filter-favorite": "Bonus-prämierte Fragen",
+    "filter-read": "Besprochene Fragen",
+    "filter-reset": "Zurücksetzen",
+    "filter-wrong": "Verneinte Fragen",
+    "read": "Fragen, die der Dozent am Beamer besprochen hat",
+    "really-delete": "Willst du die Frage wirklich löschen?",
+    "search": "Suchen",
+    "sort-comments": "Fragen sortieren",
+    "sort-vote-asc": "Positivste Bewertung zuerst",
+    "sort-vote-desc": "Negativste Bewertung zuerst",
+    "sort-list-time": "Neueste Frage zuerst",
+    "time": "Antichronologisch",
+    "vote-asc": "Aufsteigende Bewertungen",
+    "vote-desc": "Absteigende Bewertungen",
+    "wrong": "Fragen, die vom Dozenten als falsch markiert wurden"
   },
-  "room-page": {
-    "comments": "Fragen",
-    "create-content": "Frage erstellen",
-    "live-feedback": "Live Feedback",
-    "answer-statistics": "Statistiken",
-    "delete-room": "Session löschen",
-    "sure": "Bist du sicher?",
-    "reallySession": "Willst du die Session ",
-    "reallyContent": "Willst du die Frage ",
-    "really2": " wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
-    "deleted": " erfolgreich gelöscht.",
+  "comment-page": {
+    "a11y-comment_delete": "Löscht diese Frage",
+    "a11y-comment_grade": "Markiert diese Frage als Bonus Frage",
+    "a11y-comment_input": "Gib deine Frage ein",
+    "a11y-comment_marked_correct": "Hebt die Bejahung auf",
+    "a11y-comment_marked_wrong": "Hebt die Verneinung auf",
+    "a11y-comment_moderation": "Lehnt diese Frage ab",
+    "a11y-comment_not_grade": "Hebt die Bonus Markierung auf",
+    "a11y-comment_not_marked_correct": "Bejaht diese Frage",
+    "a11y-comment_not_marked_wrong": "Verneint diese Frage",
+    "a11y-comment_vote_down": "Diese Frage abwerten",
+    "a11y-comment_vote_up": "Diese Frage aufwerten",
+    "a11y-text_correct": "Diese Frage wurde bejaht.",
+    "a11y-text_grade": "Diese Frage wurde als Bonus Frage markiert.",
+    "a11y-text_read": "Diese Frage wurde in der Vollansicht am Beamer besprochen.",
+    "a11y-text_textForOneVote": "Eine Bewertung",
+    "a11y-text_textForVotes": "Bewertungen",
+    "a11y-text_wrong": "Diese Frage wurde verneint.",
     "abort": "Abbrechen",
-    "update": "Speichern",
-    "changes-successful": "Änderungen erfolgreich.",
-    "default-content-group": "Standard",
-    "description": "Beschreibung der Session",
-    "present": "Präsentieren",
-    "moderators": "Moderatoren",
-    "moderator-email": "E-Mail",
-    "no-moderators": "",
-    "moderator-not-found": "Kein Benutzer mit dieser E-Mail gefunden.",
-    "moderator-added": "Moderator wurde hinzugefügt.",
-    "moderator-removed": "Moderator wurde entfernt.",
-    "really-remove-moderator": "Willst du folgenden Moderator wirklich entfernen?",
-    "email-error": "E-Mail-Adresse ist ungültig.",
-    "session-settings": "Session-Verwaltung",
-    "general": "Session",
-    "threshold": "Schwellenwert für sichtbare Fragen: ",
-    "delete-all-comments": "Alle Fragen löschen",
-    "really-delete-comments": "Willst du wirklich alle Fragen dieser Session löschen?",
-    "comments-deleted": "Alle Fragen wurden gelöscht.",
-    "export-comments": "Fragen exportieren",
-    "room-not-found": "Session wurde nicht gefunden :(",
-    "session-id": "ID",
-    "copy-session-id": "Direktlink zur Session in die Zwischenablage kopieren",
-    "session-id-copied": "Direktlink wurde in die Zwischenablage kopiert.",
-    "settings-comment-moderation": "Fragen moderieren",
-    "settings-direct-send": "Fragen sofort sichtbar schalten",
-    "public-stream": "Offene Fragen",
-    "moderating-stream": "Moderation"
+    "ask-question-description": "Gib hier deine Frage ein!",
+    "acknowledge": "Lässt die Frage zu und setzt sie zurück auf die öffentliche Liste",
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "comment": "Die Frage {{ comment }} wurde um {{ time }} Uhr gestellt und hat derzeitig {{ votes }}. {{correct}} {{wrong}} {{bonus}} {{beamer}}",
+    "comma": "Excel-Format",
+    "delete": "Frage löschen",
+    "delimiter": "Dateiformat",
+    "enter-comment": "Frage",
+    "enter-title": "Titel",
+    "error-both-fields": "Bitte fülle alle Felder aus.",
+    "error-comment": "Bitte gib eine Frage ein.",
+    "error-title": "Bitte gib einen Titel ein.",
+    "exit-description": "Präsentationsmodus verlassen",
+    "export": "Exportieren",
+    "export-description": "Exportieren",
+    "live-announcer": "Du befindest dich jetzt auf der Fragen-Seite. Um Informationen zu Tastenkombinationen zu erhalten drücke jetzt die Enter-Taste oder rufe die Ansage zu einem späteren Zeitpunkt mit der Escape-Taste auf.",
+    "live-announcer-moderation": "Du befindest dich jetzt auf der Moderations-Seite. Um Informationen zu Tastenkombinationen zu erhalten drücke jetzt die Enter-Taste oder rufe die Ansage zu einem späteren Zeitpunkt mit der Escape-Taste auf.",
+    "mark-correct": "Frage bejahen",
+    "mark-favorite": "Als Kandidat für einen Bonus markieren",
+    "mark-not-correct": "Frage nicht bejahen",
+    "mark-not-favorite": "Nicht als besonders interessante Frage markieren",
+    "mark-not-wrong": "Frage nicht verneinen",
+    "mark-read": "In Vollansicht am Beamer besprochen",
+    "mark-wrong": "Frage verneinen",
+    "new-comment": "Eine neue Frage mit dem Inhalt, {{ comment }}, wurde soeben gestellt.",
+    "no-comments": "Keine Fragen vorhanden",
+    "reject": "Unangebrachte Frage aus der Liste entfernen",
+    "search-box-input-description": "Hier kannst du nach Fragen suchen.",
+    "semicolon": "CSV-Format",
+    "send": "Senden",
+    "send-description": "Frage abschicken",
+    "vote-down": "Frage abwerten",
+    "vote-up": "Frage aufwerten"
   },
   "content": {
-    "content": "Frage",
-    "create": "Erstellen",
-    "collection": "Sammlung",
-    "body": "Inhalt",
-    "subject": "Thema",
-    "yes": "Ja",
-    "no": "Nein",
+    "abort": "Abbrechen",
+    "actions": "Optionen",
     "add-answer": "Antwort hinzufügen",
     "answer": "Antwort",
+    "answer-deleted": "Antwort gelöscht.",
+    "answer-recovered": "Antwort wiederhergestellt.",
     "answers": "Antworten",
-    "actions": "Optionen",
-    "reset": "Zurücksetzen",
+    "at-least-one": "Im Multiple-Choice-Modus muss es mindestens eine richtige Antwort geben.",
+    "body": "Inhalt",
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "changes-made": "Änderungen gespeichert.",
+    "collection": "Sammlung",
+    "content": "Frage",
+    "content-deleted": "Frage wurde gelöscht.",
+    "content-updated": "Frage wurde aktualisiert.",
     "contents": "Fragen",
-    "submitted": "Frage erstellt. Bereit für die Erstellung neuer Fragen.",
+    "create": "Erstellen",
+    "delete": "Löschen",
+    "delete-answer": "Antwort löschen",
+    "delete-description": "Löschen",
+    "edit-answer": "Antwort bearbeiten",
+    "need-answers": "Auswahlfragen brauchen Antworten. Bitte füge Antworten hinzu.",
+    "no": "Nein",
     "no-empty": "Keine leeren Felder erlaubt. Bitte überprüfe Thema und Inhalt.",
     "no-empty2": "Keine leeren Felder erlaubt.",
     "only-one": "Im Single-Choice-Modus ist nur eine Antwort erlaubt.",
-    "same-answer": "Zweimal die selbe Antwort ist nicht erlaubt.",
-    "changes-made": "Änderungen gespeichert.",
-    "answer-deleted": "Antwort gelöscht.",
-    "answer-recovered": "Antwort wiederhergestellt.",
     "only-one-true": "Im Single-Modus ist nur eine richtige Antwort erlaubt.",
+    "points": "Punkte",
+    "reset": "Zurücksetzen",
     "reset-all": "Alle Eingaben wurden zurückgesetzt.",
-    "need-answers": "Auswahlfragen brauchen Antworten. Bitte füge Antworten hinzu.",
+    "same-answer": "Zweimal die selbe Antwort ist nicht erlaubt.",
     "select-one": "Im Single-Choice-Modus muss es eine richtige Antwort geben.",
-    "at-least-one": "Im Multiple-Choice-Modus muss es mindestens eine richtige Antwort geben.",
+    "subject": "Thema",
+    "submitted": "Frage erstellt. Bereit für die Erstellung neuer Fragen.",
     "undo": "Rückgängig",
-    "points": "Punkte",
-    "delete": "Löschen",
+    "yes": "Ja"
+  },
+  "home-page": {
+    "create-session": "Neue Sitzung",
+    "created-1": "Sitzung '",
+    "created-2": "' erfolgreich erstellt.",
+    "no-empty-name": "Bitte gib einen Namen ein."
+  },
+  "room-page": {
+    "a11y-add-moderator": "Fügt den eingegebenen Benutzer als Moderator hinzu.",
+    "a11y-cloud_download": "Direktlink zur Sitzung in die Zwischenablage kopieren",
+    "a11y-delete-all-comments": "Löscht alle Fragen.",
+    "a11y-delete-moderator": "Löscht diesen Moderator.",
+    "a11y-delete-room" : "Löscht die angegebene Sitzung.",
+    "a11y-edit": "Öffnet ein Fenster mit den Optionen, Sitzung umbenennen, Beschreibung hinzufügen und Sitzung löschen.",
+    "a11y-export-comments": "Exportiert alle Fragen.",
+    "a11y-gavel": "Öffnet  das Moderations-Board.",
+    "a11y-insert_comment": "Öffnet ein Fenster, um Fragen zu verwalten.",
+    "a11y-moderator-email": "Gib die E-Mail Adresse eines Benutzers ein, den du als Moderator hinzufügen möchtest. Der Moderator muss ein frag.jetzt Konto haben.",
+    "a11y-person": "Öffnet ein Fenster, um Moderatoren hinzuzufügen.",
+    "a11y-question_answer": "Öffnet das Fragen-Board.",
+    "a11y-room-name": "Vergebe der Sitzung hier einen neuen Namen.",
+    "a11y-settings": "Öffnet ein Fenster mit Optionen, die Sitzung zu verwalten, Fragen zu verwalten und Moderatoren hinzuzufügen.",
+    "a11y-settings-comment-moderation": "Schieberegler für moderierte Fragen",
+    "a11y-settings-direct-send": "Schieberegler, um Fragen sofort sichtbar zu machen.",
+    "a11y-threshold": "Schieberegler zum Einstellen des Schwellenwerts für sichtbare Fragen",
     "abort": "Abbrechen",
-    "delete-answer": "Antwort löschen",
-    "edit-answer": "Antwort bearteiten",
-    "content-deleted": "Frage wurde gelöscht.",
-    "content-updated": "Frage wurde aktualisiert."
+    "answer-statistics": "Statistiken",
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "changes-successful": "Änderungen gespeichert.",
+    "comments": "Fragen",
+    "comments-deleted": "Alle Fragen wurden gelöscht.",
+    "copy-session-id": "Direktlink zur Sitzung in die Zwischenablage kopieren",
+    "create-content": "Frage erstellen",
+    "default-content-group": "Standard",
+    "delete-all-comments": "Alle Fragen löschen",
+    "delete-room": "Sitzung löschen",
+    "delete-room-description": "Sitzung löschen",
+    "deleted": " gelöscht.",
+    "description": "Beschreibung der Sitzung",
+    "email-error": "E-Mail Adresse ist ungültig.",
+    "export-comments": "Fragen exportieren",
+    "general": "Sitzung",
+    "live-announcer": "Du befindest dich jetzt in der Sitzung. Um Informationen zu Tastenkombinationen zu erhalten drücke jetzt die Enter-Taste oder rufe die Ansage zu einem späteren Zeitpunkt mit der Escape-Taste auf.",
+    "live-feedback": "Live Feedback",
+    "moderating-stream": "Moderation",
+    "moderator-added": "Moderator wurde hinzugefügt.",
+    "moderator-email": "Mail-Adresse des Moderators",
+    "moderator-not-found": "Kein User mit dieser Mail-Adresse gefunden.",
+    "moderator-removed": "Moderator wurde entfernt.",
+    "moderators": "Moderatoren",
+    "no-moderators": "",
+    "present": "Präsentieren",
+    "public-stream": "Fragen",
+    "really-delete-comments": "Willst du wirklich alle Fragen dieser Sitzung löschen?",
+    "really-remove-moderator": "Willst du folgenden Moderator wirklich entfernen?",
+    "really2": " wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
+    "reallyContent": "Willst du die Frage ",
+    "reallySession": "Willst du die Sitzung ",
+    "room-not-found": "Sitzung wurde nicht gefunden (",
+    "session-id": "Code",
+    "session-id-copied": "Direktlink wurde in die Zwischenablage kopiert.",
+    "session-settings": "Sitzungs-Verwaltung",
+    "settings-comment-moderation": "Fragen moderieren",
+    "settings-direct-send": "Fragen sofort sichtbar",
+    "sure": "Bist du sicher?",
+    "threshold": "Schwellenwert",
+    "update": "Speichern",
+    "update-description": "Speichert die Änderungen"
   },
   "session": {
-    "session-name": "Name der Session",
-    "description": "Beschreibung der Session",
-    "max-ls": "Max. Zeichen:",
-    "create-session": "Session erstellen"
+    "a11y-description": "Gib eine Beschreibung für die Sitzung ein.",
+    "create-session": "Sitzung erstellen",
+    "description": "Beschreibung der Sitzung",
+    "max-ls": "Maximale Anzahl Zeichen:",
+    "session-name": "Name der Sitzung"
   },
   "statistic": {
-    "content": "Frage",
+    "abstentions": "Enthaltungen",
     "answer-statistic": "Antwortstatistik",
     "answers": "Antworten",
-    "percentage": "Prozent",
-    "abstentions": "Enthaltungen",
-    "no-questions": "Noch keine Antworten",
+    "content": "Frage",
     "good": "Gut",
     "improvable": "Luft nach oben",
-    "no-answers": "Keine Antworten"
-  },
-  "comment-page": {
-    "enter-title": "Titel",
-    "enter-comment": "Frage",
-    "send": "Senden",
-    "abort": "Abbrechen",
-    "error-comment": "Bitte gib eine Frage ein.",
-    "error-title": "Bitte gib einen Titel ein.",
-    "error-both-fields": "Bitte fülle alle Felder aus.",
-    "delimiter": "Bitte wähle ein Format!",
-    "comma": "Microsoft Excel",
-    "semicolon": "Standard CSV",
-    "export": "Exportieren",
-    "no-comments": "Keine Fragen vorhanden",
-    "mark-correct": "Frage bejahen",
-    "mark-not-correct": "Frage nicht bejahen",
-    "mark-wrong": "Frage als falsch markieren",
-    "mark-not-wrong": "Frage nicht als falsch markieren",
-    "mark-favorite": "Als Kandidat für einen Bonus markieren",
-    "mark-not-favorite": "Nicht als besonders interessante Frage markieren",
-    "mark-read": "In Vollansicht am Beamer besprochen",
-    "vote-up": "Hochvoten",
-    "vote-down": "Runtervoten",
-    "acknowledge": "Erlauben",
-    "reject": "Unterbinden",
-    "delete": "Frage löschen"
-  },
-  "comment-list": {
-    "search": "Suchen",
-    "filter-comments": "Fragen filtern",
-    "sort-comments": "Fragen sortieren",
-    "add-comment": "Frage stellen",
-    "wrong": "Verneint",
-    "correct": "Bejaht",
-    "favorite": "Bonus-Frage",
-    "read": "Besprochen",
-    "unread": "Nicht besprochen",
-    "vote-desc": "Absteigende Votes",
-    "vote-asc": "Aufsteigende Votes",
-    "time": "Zeit",
-    "comment-sent": "Die Frage wurde veröffentlicht.",
-    "really-delete": "Willst du diese Frage wirklich löschen?"
+    "no-answers": "Keine Antworten",
+    "no-questions": "Noch keine Antworten",
+    "percentage": "Prozent"
   }
 }
diff --git a/src/assets/i18n/creator/en.json b/src/assets/i18n/creator/en.json
index 92ffe2aa80ed87c0d26e68dd831a49423522c355..e6edff4fcb2cc9af6b0dbd6c6fb78fc887a81388 100644
--- a/src/assets/i18n/creator/en.json
+++ b/src/assets/i18n/creator/en.json
@@ -1,144 +1,226 @@
 {
+  "comment-list": {
+    "a11y-access_time": "Sorts questions by time",
+    "a11y-add": "Option to ask a question",
+    "a11y-pause": "Stops question stream",
+    "a11y-play": "Starts question stream",
+    "a11y-beamer_icon": "Filters all discussed questions",
+    "a11y-check_circle": "Filters all questions marked as correct",
+    "a11y-close": "Picks up all filters",
+    "a11y-close_search": "Closes the search of questions",
+    "a11y-filter_list": "Option to filter questions",
+    "a11y-grade": "Filters all bonus questions",
+    "a11y-keyboard_arrow_down": "Sorts questions by descending votes",
+    "a11y-keyboard_arrow_up": "Sorts questions by ascending votes",
+    "a11y-not_interested": "Filters all questions marked as wrong",
+    "a11y-search_box": "Enter the desired question",
+    "a11y-swap_vert": "Option to sort questions",
+    "add-comment": "Ask a question!",
+    "pause-comments": "Pause the question stream",
+    "play-comments": "Start the question stream",
+    "comment-stream-stopped": "The question stream has been stopped.",
+    "comment-stream-started": "The question stream has been started.",
+    "comment-sent": "The question has been published.",
+    "comment-deleted": "The question has been deleted.",
+    "correct": "Marked as correct by you",
+    "favorite": "Bonus question",
+    "filter-comments": "Filter questions",
+    "filter-correct": "Affirmed questions",
+    "filter-favorite": "Questions awarded a bonus",
+    "filter-read": "Questions discussed",
+    "filter-reset": "Reset",
+    "filter-wrong": "Negated questions",
+    "read": "Discussed",
+    "really-delete": "Do you really want to delete this question?",
+    "search": "Search",
+    "sort-comments": "Sort questions",
+    "sort-vote-asc": "Best rating first",
+    "sort-vote-desc": "Worst rating first",
+    "sort-list-time": "Latest question first",
+    "time": "Time",
+    "unread": "Not discussed",
+    "vote-asc": "Ascending votes",
+    "vote-desc": "Descending votes",
+    "wrong": "Marked as wrong by you"
+  },
+  "comment-page": {
+    "a11y-comment_delete": "Deletes this question",
+    "a11y-comment_grade": "Marks this question as a bonus question",
+    "a11y-comment_input": "Enter your question",
+    "a11y-comment_marked_correct": "Cancels the mark as correct",
+    "a11y-comment_marked_wrong": "Cancels the mark as incorrect",
+    "a11y-comment_moderation": "Rejects this question",
+    "a11y-comment_not_grade": "Cancels the mark as bonus",
+    "a11y-comment_not_marked_correct": "Marks this question correct",
+    "a11y-comment_not_marked_wrong": "Marks this question as not correct",
+    "a11y-comment_vote_down": "Votes down this question",
+    "a11y-comment_vote_up": "Votes up this question",
+    "a11y-text_correct": "This question was marked as correct.",
+    "a11y-text_grade": "This question was marked as a bonus question.",
+    "a11y-text_read": "This question was discussed in full view on the beamer",
+    "a11y-text_textForOneVote": "Eine Bewertung",
+    "a11y-text_textForVotes": "Bewertungen",
+    "a11y-text_wrong": "Die Frage wurde verneint.",
+    "abort": "Cancel",
+    "acknowledge": "Let the question go",
+    "ask-question-description": "Enter your question here!",
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
+    "comma": "Excel format",
+    "comment": "Question {{ comment }} was asked at {{ time }} and has currently {{ votes }}. {{correct}} {{wrong}} {{bonus}} {{beamer}}",
+    "delete": "Delete question",
+    "delimiter": "Please choose a format!",
+    "enter-comment": "Question",
+    "enter-title": "Title",
+    "error-both-fields": "Please fill in all fields.",
+    "error-comment": "Please ask a question.",
+    "error-title": "Please enter a title.",
+    "exit-description": "Exit Presentation Mode",
+    "export": "Export",
+    "export-description": "Export",
+    "live-announcer": "You are now on the questions page. To get information about key combinations press the Enter key or call the announcement later with the Escape key.",
+    "live-announcer-moderation": "You are now on the moderation page. To get information about key combinations press the Enter key or call the announcement later with the Escape key.",
+    "mark-correct": "Mark as correct",
+    "mark-favorite": "Mark as bonus question",
+    "mark-not-correct": "Mark not as correct",
+    "mark-not-favorite": "Mark not as bonus question",
+    "mark-not-wrong": "Mark not as wrong",
+    "mark-read": "Discussed by you in full screen mode on the projector",
+    "mark-wrong": "Mark as wrong",
+    "new-comment": "A new question with the content, {{ comment }}, has been asked.",
+    "no-comments": "No questions present",
+    "reject": "Remove inappropriate question from the list",
+    "search-box-input-description": "Here you can search for questions.",
+    "semicolon": "CSV format",
+    "send": "Send",
+    "send-description": "Send question",
+    "vote-down": "Vote down",
+    "vote-up": "Vote up"
+  },
+  "content": {
+    "abort": "Abort",
+    "actions": "Options",
+    "add-answer": "Add answer",
+    "answer": "Answer",
+    "answer-deleted": "Answer deleted.",
+    "answer-recovered": "Answer recovered.",
+    "answers": "Answers",
+    "at-least-one": "In multiple choice mode you have to select at least 1 true answer.",
+    "body": "Body",
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
+    "changes-made": "Changes are made.",
+    "collection": "Collection",
+    "content": "Content",
+    "content-deleted": "Content has been deleted.",
+    "content-updated": "Content has been updated.",
+    "contents": "Contents",
+    "create": "Create",
+    "delete": "Delete",
+    "delete-answer": "Delete answer",
+    "delete-description": "Delete",
+    "edit-answer": "Edit answer",
+    "need-answers": "Choice content needs answers. Please add some answers.",
+    "no": "No",
+    "no-empty": "No empty fields allowed. Please check subject and body.",
+    "no-empty2": "No empty filed allowed.",
+    "only-one": "In single choice mode is only 1 true answer allowed.",
+    "only-one-true": "In single mode is only 1 true answer allowed.",
+    "points": "Points",
+    "reset": "Reset",
+    "reset-all": "Reset all inputs.",
+    "same-answer": "Same answer label is not allowed.",
+    "select-one": "In single choice mode you have to select 1 true answer.",
+    "subject": "Subject",
+    "submitted": "Content submitted. Ready for creation of new content.",
+    "undo": "Undo",
+    "yes": "Yes"
+  },
   "home-page": {
     "create-session": "New Session",
-    "no-empty-name": "Please enter a name.",
     "created-1": "Session '",
-    "created-2": "' successfully created."
+    "created-2": "' successfully created.",
+    "no-empty-name": "Please enter a name."
   },
   "room-page": {
-    "comments": "Questions",
-    "create-content": "Create content",
-    "live-feedback": "Live feedback",
-    "answer-statistics": "Statistics",
-    "delete-room": "Delete session",
-    "sure": "Are you sure?",
-    "reallySession": "Do you really want to delete session ",
-    "reallyContent": "Do you really want to delete content ",
-    "really2": "? This action can not be undone.",
-    "deleted": " successfully deleted.",
+    "a11y-add-moderator": "Add the entered User as Moderator",
+    "a11y-cloud_download": "Copy link to session to the clipboard",
+    "a11y-delete-all-comments": "Deletes all questions",
+    "a11y-delete-moderator": "Delete this Moderator",
+    "a11y-delete-room": "Deletes the entered session",
+    "a11y-edit": "Opens a window with options, rename session, add description and delete session",
+    "a11y-export-comments": "Exports all questions",
+    "a11y-gavel": "Opens all questions selected by the moderator",
+    "a11y-insert_comment": "Opens a window to manage questions",
+    "a11y-moderator-email": "Enter the email of the user you want to add as a moderator",
+    "a11y-person": "Opens a window to add moderators",
+    "a11y-question_answer": "Opens all questions asked about the session",
+    "a11y-room-name": "Give the session a new name here.",
+    "a11y-settings": "Opens a window with options to manage sessions, manage questions, and add moderators.",
+    "a11y-settings-comment-moderation": "Slider to moderate Questions",
+    "a11y-settings-direct-send": "Slider to send Questions directly to participant",
+    "a11y-threshold": "Slider for setting the threshold for visible questions",
     "abort": "Abort",
-    "update": "Update",
+    "answer-statistics": "Statistics",
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
     "changes-successful": "Successfully updated.",
+    "comments": "Questions",
+    "comments-deleted": "All questions have been deleted.",
+    "copy-session-id": "Copy link to session to the clipboard",
+    "create-content": "Create content",
     "default-content-group": "Default",
+    "delete-all-comments": "Delete all questions",
+    "delete-room": "Delete session",
+    "delete-room-description": "Delete session",
+    "deleted": " deleted.",
     "description": "Description of session",
-    "present": "Present",
-    "moderators": "Moderators",
+    "email-error": "E-Mail is invalid.",
+    "export-comments": "Export questions",
+    "general": "Session",
+    "live-announcer": "You're in the session now. To get information about key combinations press the Enter key or call the announcement later with the Escape key.",
+    "live-feedback": "Live feedback",
+    "moderating-stream": "Moderation",
+    "moderator-added": "Moderator was added.",
     "moderator-email": "E-Mail",
-    "no-moderators": "No moderators yet",
     "moderator-not-found": "No user was found with this E-Mail.",
-    "moderator-added": "Moderator was added.",
     "moderator-removed": "Moderator has been removed.",
-    "really-remove-moderator": "Do you really want to remove the following moderator?",
-    "email-error": "E-Mail is invalid.",
-    "session-settings": "Session administration",
-    "general": "Session",
-    "threshold": "Threshold for visible questions: ",
-    "delete-all-comments": "Delete all questions",
+    "moderators": "Moderators",
+    "no-moderators": "No moderators yet",
+    "present": "Present",
+    "public-stream": "Questions",
     "really-delete-comments": "Do you really want to delete all questions of this session?",
-    "comments-deleted": "All questions have been deleted.",
-    "export-comments": "Export questions",
+    "really-remove-moderator": "Do you really want to remove the following moderator?",
+    "really2": "? This action can not be undone.",
+    "reallyContent": "Do you really want to delete content ",
+    "reallySession": "Do you really want to delete session ",
     "room-not-found": "Session not found :(",
-    "session-id": "ID",
-    "copy-session-id": "Copy link to session to the clipboard",
+    "session-id": "Key",
     "session-id-copied": "Session link was copied to the clipboard.",
+    "session-settings": "Session administration",
     "settings-comment-moderation": "Moderate questions",
-    "settings-direct-send": "Send Questions directly to participants",
-    "public-stream": "Public Questions",
-    "moderating-stream": "Moderation"
-  },
-  "content": {
-    "content": "Content",
-    "create": "Create",
-    "collection": "Collection",
-    "body": "Body",
-    "subject": "Subject",
-    "yes": "Yes",
-    "no": "No",
-    "add-answer": "Add answer",
-    "answer": "Answer",
-    "answers": "Answers",
-    "actions": "Options",
-    "reset": "Reset",
-    "contents": "Contents",
-    "submitted": "Content submitted. Ready for creation of new content.",
-    "no-empty": "No empty fields allowed. Please check subject and body.",
-    "no-empty2": "No empty filed allowed.",
-    "only-one": "In single choice mode is only 1 true answer allowed.",
-    "same-answer": "Same answer label is not allowed.",
-    "changes-made": "Changes are made.",
-    "answer-deleted": "Answer deleted.",
-    "answer-recovered": "Answer recovered.",
-    "only-one-true": "In single mode is only 1 true answer allowed.",
-    "reset-all": "Reset all inputs.",
-    "need-answers": "Choice content needs answers. Please add some answers.",
-    "select-one": "In single choice mode you have to select 1 true answer.",
-    "at-least-one": "In multiple choice mode you have to select at least 1 true answer.",
-    "undo": "Undo",
-    "points": "Points",
-    "delete": "Delete",
-    "abort": "Abort",
-    "delete-answer": "Delete answer",
-    "edit-answer": "Edit answer",
-    "content-deleted": "Content has been deleted.",
-    "content-updated": "Content has been updated."
+    "settings-direct-send": "Questions instantly visible",
+    "sure": "Are you sure?",
+    "threshold": "Threshold",
+    "update": "Update",
+    "update-description": "Save changes"
   },
   "session": {
-    "session-name": "Session name",
+    "a11y-description": "Enter a description for the session",
+    "create-session": "Create session",
     "description": "Session description",
     "max-ls": "Max. characters:",
-    "create-session": "Create session"
+    "session-name": "Session name"
   },
   "statistic": {
-    "content": "Content",
+    "abstentions": "Abstentions",
     "answer-statistic": "Answer statistics",
     "answers": "Answers",
-    "percentage": "Percentage",
-    "abstentions": "Abstentions",
-    "no-questions": "There are no answers yet.",
+    "content": "Content",
     "good": "Good",
     "improvable": "Improvable",
-    "no-answers": "No answers"
-  },
-  "comment-page": {
-    "enter-title": "Title",
-    "enter-comment": "Question",
-    "send": "Send",
-    "abort": "Cancel",
-    "error-title": "Please enter a title.",
-    "error-comment": "Please ask a question.",
-    "error-both-fields": "Please fill in all fields.",
-    "delimiter": "Please choose a format!",
-    "comma": "Microsoft Excel",
-    "semicolon": "Standard CSV",
-    "export": "Export",
-    "no-comments": "No questions yet",
-    "mark-correct": "Mark as correct",
-    "mark-not-correct": "Mark not as correct",
-    "mark-wrong": "Mark as wrong",
-    "mark-not-wrong": "Mark not as wrong",
-    "mark-favorite": "Mark as bonus question",
-    "mark-not-favorite": "Mark not as bonus question",
-    "mark-read": "Discussed by you in full screen mode on the projector",
-    "vote-up": "Vote up",
-    "vote-down": "Vote down",
-    "acknowledge": "Acknowledge",
-    "reject": "Reject",
-    "delete": "Delete question"
-  },
-  "comment-list": {
-    "search": "Search",
-    "filter-comments": "Filter questions",
-    "sort-comments": "Sort questions",
-    "add-comment": "Ask a question!",
-    "wrong": "Marked as wrong by you",
-    "correct": "Marked as correct by you",
-    "favorite": "Bonus question",
-    "read": "Discussed",
-    "unread": "Not discussed",
-    "vote-desc": "Descending votes",
-    "vote-asc": "Ascending votes",
-    "time": "Time",
-    "comment-sent": "The question has been published.",
-    "really-delete": "Do you really want to delete this question?"
+    "no-answers": "No answers",
+    "no-questions": "There are no answers yet.",
+    "percentage": "Percentage"
   }
 }
diff --git a/src/assets/i18n/data-protection/data-protection-de.html b/src/assets/i18n/data-protection/data-protection-de.html
new file mode 100644
index 0000000000000000000000000000000000000000..bdd3bb6e09d64cfd4a24882e49179af924c379ce
--- /dev/null
+++ b/src/assets/i18n/data-protection/data-protection-de.html
@@ -0,0 +1,91 @@
+<h2>Grundsatz</h2>
+  <p>Deine personenbezogenen Daten werden vertraulich behandelt. Sämtliche Handlungen sind an die gesetzlichen Grundlagen
+    des Hessischen Datenschutzgesetzes (HDSG), des Telemediengesetzes (TMG), der Datenschutz-Grundverordnung der EU
+    (EU-DSGVO) sowie dieser Datenschutzerklärung gebunden. Dies wird von der TransMIT GmH als Betreiber von »frag.jetzt«
+    garantiert.
+  </p>
+
+<h2>Nutzungs&shy;daten</h2>
+  <p>Personenbezogene Daten über die Inanspruchnahme von »frag.jetzt« (Nutzungsdaten) erheben, verarbeiten und nutzen wir nur, soweit dies erforderlich
+    ist, um dem Benutzer die Inanspruchnahme von »frag.jetzt« zu ermöglichen.
+    Im Normalfall ist eine Registrierung für die Nutzung von »frag.jetzt« nicht erforderlich.<br>
+    <br>
+    Es gibt drei Ausnahmen:
+    erstens, der Dozent will seine Sitzungen auf dem Server von »frag.jetzt« dauerhaft speichern,
+    zweitens, ein Benutzer soll als Moderator in eine Sitzung aufgenommen werden,
+    und drittens, ein Student will am Bonusverfahren teilnehmen.
+    In allen drei Fällen muss eine gültige Mailadresse als Anmeldenamen verwaltet werden.<br>
+    <br>
+    Ein Dozent, der einen Moderator in seine Sitzung aufnimmt, hat Kenntnis von dessen Mailadresse.
+    Ein Dozent, der Bonuspunkte in seiner Sitzung vergeben will,
+    gewinnt beim Export der Fragen Kenntnis von den Mailadressen der Studenten, d
+    ie sich registriert haben, um am Bonusverfahren teilzunehmen.<br>
+    <br>
+    Bei Nichtnutzung eines Kontos innerhalb von 180 Tagen wird das Konto automatisch ohne Mitteilung gelöscht.
+  </p>
+
+<h2>Zugriffs&shy;daten</h2>
+  <p> Personenbezogene Daten werden nur im technisch notwendige Umfang von »frag.jetzt« erhoben.
+    Außer der Mailadresse als Anmeldename eines registrierten Benutzers werden keine personenbezogenen Daten gespeichert.
+  </p>
+
+<h2>Log&shy;-Da&shy;teien</h2>
+  <p>Wir erheben und speichern automatisch Informationen in Log-Dateien, die dein Browser automatisch an uns übermittelt.
+    Dies sind:
+
+    Browsertyp und Browserversion,
+    verwendetes Betriebssystem,
+    Referrer URL,
+    Hostname des zugreifenden Rechners und
+    Uhrzeit der Serveranfrage.
+    Diese Daten sind nicht bestimmten Personen zuordbar. Eine Zusammenführung dieser Daten mit anderen Datenquellen wird
+    nicht vorgenommen.
+  </p>
+
+<h2>Local Storage</h2>
+  <p>»frag.jetzt« verwendet die sogenannte Local-Storage-Technik.
+    Dabei werden Daten lokal im Cache deines Browsers gespeichert,
+    die auch nach dem Schließen des Browser-Fensters oder dem Beenden des Programms – solange du den Cache nicht löscht - weiterhin bestehen und ausgelesen werden können.
+  </p>
+
+<h2>Daten&shy;sicherheit</h2>
+  <p>Es wurden umfangreiche technische und betriebliche Schutzvorkehrungen getroffen, um deine Daten vor zufälligen oder
+    vorsätzlichen Manipulationen, Verlust, Zerstörung oder dem Zugriff unberechtigter Personen zu schützen. Die
+    Sicherheitsverfahren werden regelmäßig überprüft und dem technologischen Fortschritt angepasst. Datenübertragungen
+    im Internet (z. B. bei der Kommunikation per E-Mail) können jedoch Sicherheitslücken aufweisen, sodass ein
+    lückenloser Schutz der Daten vor dem Zugriff durch Dritte nicht möglich ist.
+  </p>
+
+<h2>Daten&shy;über&shy;mitt&shy;lun&shy;gen an Dritte</h2>
+  <p>Eine Übermittlung deiner Daten an Dritte findet nicht statt, es sei denn, die Betreiber von »frag.jetzt« sind
+    gesetzlich dazu verpflichtet. Soweit externe Dienstleister mit deinen personenbezogenen Daten in Kontakt kommen, wird durch
+    rechtliche, technische und organisatorische Maßnahmen sowie durch regelmäßige Kontrollen sichergestellt, dass diese
+    die Vorschriften der Datenschutzgesetze einhalten.
+  </p>
+
+<h2>Links zu Webseiten anderer Anbieter</h2>
+  <p>»frag.jetzt« kann Links zu Webseiten anderer Anbieter enthalten, auf die sich diese Datenschutzerklärung nicht
+    bezieht.
+    Soweit mit der Nutzung der Internetseiten anderer Anbieter die Erhebung, Verarbeitung oder Nutzung personenbezogener
+    Daten verbunden ist, beachte bitte die Datenschutzhinweise der jeweiligen Anbieter.
+  </p>
+
+<h2>Widerspruchs&shy;recht und Auskunfts&shy;recht</h2>
+  <p>Du hast jederzeit das Recht auf unentgeltliche Auskunft über deine gespeicherten personenbezogenen Daten, deren
+    Herkunft und Empfänger, den Zweck der Datenverarbeitung sowie ein Recht auf Berichtigung, Sperrung oder Löschung
+    dieser Daten.
+
+    Bei Unklarheiten oder Anregungen wende dich an folgende E-Mail-Adresse oder an die im Impressum angegebenen
+    Kontaktdaten: klaus.quibeldey-cirkel&shy;@transmit.de
+  </p>
+
+<h2>Verzeichnis von Ver&shy;arbeitungs&shy;tätig&shy;kei&shy;ten</h2>
+  <p>Eine Übersicht über die in »frag.jetzt« verarbeiteten personenbezogenen Daten findest du im Projektarchiv unter https://git.thm.de/&shy;arsnova/&shy;frag.jetzt.
+  </p>
+
+<h2>Änderungen der Daten&shy;schutz&shy;er&shy;klärung</h2>
+  <p>Wir behalten uns das Recht vor, diese Datenschutzerklärung jederzeit unter Beachtung der geltenden
+    Datenschutzvorschriften zu ändern.
+  </p>
+
+  <p>Stand: 14.09.2019</p>
diff --git a/src/assets/i18n/data-protection/data-protection-de.ts b/src/assets/i18n/data-protection/data-protection-de.ts
new file mode 100644
index 0000000000000000000000000000000000000000..37016a18b7b9a7d31c108a295452be7e9aa4b08b
--- /dev/null
+++ b/src/assets/i18n/data-protection/data-protection-de.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-data-protection-de',
+  templateUrl: './data-protection-de.html',
+  styleUrls: ['./data-protection.scss']
+})
+
+export class DataProtectionDeComponent {}
diff --git a/src/assets/i18n/data-protection/data-protection-en.html b/src/assets/i18n/data-protection/data-protection-en.html
new file mode 100644
index 0000000000000000000000000000000000000000..a0bf68f1916d0ae924029f455a25bccca1af1476
--- /dev/null
+++ b/src/assets/i18n/data-protection/data-protection-en.html
@@ -0,0 +1,65 @@
+<h2>Principle</h2>
+<p>Your personal data will be treated confidentially. All actions are bound to the legal principles of the Hessian Data Protection Act (HDSG), the Telemedia Act (TMG), the EU Data Protection Basic Regulation (EU-DSGVO) and this data protection declaration. This is guaranteed by TransMIT GmH as operator of »frag.jetzt«.
+</p>
+
+<h2>Usage data</h2>
+<p>We collect, process and use personal data about the use of »frag.jetzt« (usage data) only to the extent necessary to enable the user to use »frag.jetzt«.
+  Normally a registration for the use of »frag.jetzt« is not necessary.<br>
+  <br>
+  There are three exceptions:
+  first, the instructor wants to save his sessions on the server of »frag.jetzt« permanently;
+  second, a user should be included as a moderator in a session,
+  and third, a student wants to participate in the bonus program.
+  In all three cases, a valid e-mail address must be used as the login name.<br>
+  <br>
+  A lecturer, who includes a moderator in his session, has knowledge of the moderator's mail address.
+  A lecturer who wishes to award bonus points in his session will, when exporting the questions, become aware of the mail addresses of the students who have registered to participate in the bonus program.<br>
+  <br>
+  If an account is not used within 180 days, the account will be automatically deleted without notice.
+</p>
+
+<h2>Access data </h2>
+<p> Personal data will only be collected to the technically necessary extent of »frag.jetzt«. Apart from the e-mail address as the login name of a registered user, no personal data is stored.
+</p>
+
+<h2>Log files</h2>
+<p>We automatically collect and store information in log files that your browser automatically transmits to us.
+  These are:
+  browser type and browser version,
+  operating system used,
+  referrer URL,
+  hostname of the accessing computer and
+  time of the server request.
+  This data cannot be assigned to specific persons. This data is not merged with other data sources.
+</p>
+
+<h2>Local Storage</h2>
+<p>»frag.jetzt« uses the so-called local storage technology.
+  This means that data is stored locally in the cache of your browser and can continue to exist and be read even after you close the browser window or quit the program - unless you delete the cache.
+</p>
+
+<h2>Data security</h2>
+<p>Comprehensive technical and operational protective measures have been taken to protect your data from accidental or intentional manipulation, loss, destruction or access by unauthorized persons. The security procedures are regularly reviewed and adapted to technological progress. However, data transmissions on the Internet (e.g. when communicating by e-mail) can have security gaps, so that complete protection of the data against access by third parties is not possible.
+</p>
+
+<h2>Data transfers to third parties</h2>
+<p>A transmission of your data to third parties does not take place, unless the operators of »frag.jetzt« are legally obliged to do so. Insofar as external service providers come into contact with your personal data, legal, technical and organisational measures as well as regular checks will ensure that this data is not passed on to third parties. comply with the provisions of the data protection laws.
+</p>
+
+<h2>Links to websites of other providers</h2>
+<p>»frag.jetzt« may contain links to other websites which are not covered by this privacy statement. If the collection, processing or use of personal data is associated with the use of the Internet pages of other providers, please observe the data protection information of the respective providers.
+</p>
+
+<h2>Right to object and right to information </h2>
+<p>You have the right at any time to free information about your stored personal data, their origin and recipient, the purpose of data processing and a right to correction, blocking or deletion of this data. In case of ambiguities or suggestions, please contact the following e-mail address or the contact details given in the imprint: klaus.quibeldey-cirkel&shy;@transmit.de
+</p>
+
+<h2>Directory of processing activities </h2>
+<p>You can find an overview of the personal data processed in »frag.jetzt« in the repository at https://git.thm.de/arsnova/frag.jetzt.
+</p>
+
+<h2>Changes to the Data Protection & Privacy Policy</h2>
+<p>We reserve the right to change this data protection statement at any time in accordance with the applicable data protection regulations.
+</p>
+
+<p>09/14/2019</p>
diff --git a/src/assets/i18n/data-protection/data-protection-en.ts b/src/assets/i18n/data-protection/data-protection-en.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b2cbfdde94c07d948bdd66af14f39b29c52d9a5f
--- /dev/null
+++ b/src/assets/i18n/data-protection/data-protection-en.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-data-protection-en',
+  templateUrl: './data-protection-en.html',
+  styleUrls: ['./data-protection.scss']
+})
+
+export class DataProtectionEnComponent {}
diff --git a/src/assets/i18n/data-protection/data-protection.scss b/src/assets/i18n/data-protection/data-protection.scss
new file mode 100644
index 0000000000000000000000000000000000000000..63be1293bec457c5aafa7a91e72b2d659b23f306
--- /dev/null
+++ b/src/assets/i18n/data-protection/data-protection.scss
@@ -0,0 +1,10 @@
+h2 {
+  padding-top: 20px;
+}
+
+p {
+  word-break: break-word;
+  -ms-hyphens: auto;
+  -webkit-hyphens: auto;
+  hyphens: auto;
+}
diff --git a/src/assets/i18n/demo/demo-de.html b/src/assets/i18n/demo/demo-de.html
new file mode 100644
index 0000000000000000000000000000000000000000..5697df1bb37e35269e83b5a134ea936f81fe8d49
--- /dev/null
+++ b/src/assets/i18n/demo/demo-de.html
@@ -0,0 +1,105 @@
+<div class="video">
+  <div class="videoWrapper">
+    <iframe tabindex="0"
+            width="560" height="315"
+            src="https://youtu.be/qHRC6z9VtWs?autoplay=0" frameborder="0"
+            allowfullscreen
+    ></iframe>
+  </div>
+</div>
+
+<h2>Warum »frag.jetzt«?</h2>
+
+<p>Die klassische Vorlesung endet in der Regel mit: »Haben Sie Fragen?«. Und stets meldet sich niemand oder es fragen
+  immer dieselben wenigen. Entweder traut sich im großen Hörsaal niemand oder die Fragen, die man im Verlauf der
+  Vorlesung eigentlich stellen wollte, sind vergessen.</p>
+
+<p>Wem daran liegt, dass seine Vorlesung reflektiert und
+  hinterfragt wird, braucht ein Tool zum anonymen stillen Fragenstellen.
+  Ein solches <a href="https://github.com/thm-projects/frag.jetzt" target="_blank"> Open-Source-Tool</a> steht mit
+  »frag.jetzt« kostenlos zur freien Verfügung. Gibt es Bedenken? Ist das Tool barrierefrei, daten&shy;schutz&shy;kon&shy;form,
+  sofort ohne Einarbeitung und ohne technisches Verständnis mit jedem Endgerät nutzbar? Dreimal ja.</p>
+
+<p>Wenn ich »frag.jetzt« anonym und somit ohne soziale Kontrolle verwenden lasse, lade ich dann nicht auch zum
+  Missbrauch ein? Nein, denn die Fragenliste kann von einer Hilfskraft live moderiert werden: Nur vorlesungsadäquate
+  Fragen verbleiben auf der Liste.</p>
+
+<p>Aber ich kann doch nicht alle Fragen in den letzten zehn Minuten meiner Vorlesung
+  beantworten. Klar. Hier kommt der kollektive Tool-Aspekt zum Tragen: Jeder im Auditorium kann jede Frage bewerten,
+  neudeutsch: up oder down voten. Die vom Auditorium am höchsten bewerteten Fragen kannst du sofort beantworten, die
+  anderen, falls du es willst, später im Kursforum der Lernplattform.</p>
+
+<h2>
+  Das Besondere an »frag.jetzt«
+</h2>
+
+<p>
+  Die Lehrperson kann für zielführende und vorlesungsadäquate Fragen Bonuspunkte vergeben.
+  Studierende, die an der Bonusvergabe teilnehmen wollen, müssen sich registrieren und mit ihrem Konto an der Sitzung
+  anmelden.
+  Dies ist beim Export der Fragen erforderlich, um die Identität der Fragensteller/innen anhand der Mail-Adresse den
+  Bonus-prämierten Fragen zuordnen zu können.
+  Auch registrierte Teilnehmer/innen bleiben für alle anderen immer anonym.
+</p>
+<p>
+  Es können beliebig viele Sitzungen kostenlos als Gast oder registrierter User erstellt werden.
+  Nur die Sitzungen registrierter User bleiben dauerhaft erhalten.
+  Erst 180 Tage nach der letzten Nutzung einer Sitzung wird diese automatisch gelöscht.
+</p>
+<p>
+  »frag.jetzt« wurde für die barrierefreie Nutzung mit einem Screen Reader und die ausschließliche Steuerung mit der
+  Tastatur optimiert.
+  Die Benutzerschnittstelle genügt den Anforderungen gemäß WCAG 2.1 AA.
+  Für die Beamer-Präsentation in großen Hörsälen und für Sehbehinderte stehen entsprechende Anzeigeoptionen (»Themes«)
+  zur Verfügung.
+  Insbesondere kann die Schriftgröße der Fragen beliebig skaliert werden.
+</p>
+<p>
+  »frag.jetzt« kann bei einer Anmeldung als Gast vollständig anonym verwendet werden.
+  Die Konten registrierter User werden datenschutzkonform nach den Vorgaben der DSGVO gespeichert und verwaltet.
+  Der Programmcode ist »Open Source Software« und kann auf GitHub eingesehen werden.
+  »frag.jetzt« wird als kostenlose »Software as a Service« von der TransMIT GmbH betrieben, siehe Impressum.
+</p>
+
+<h2>Handy-Nutzung</h2>
+
+<ol>
+  <li>
+    Handy-Nutzung während der Vorlesung:
+    Eine Hilfskraft moderiert das Fragen-Board vor Ort oder aus der Ferne.
+    10 Minuten vor Ende der Vorlesung beantwortet die Lehrperson 2-3 Top-Fragen am Beamer.
+  </li>
+  <li>
+    Handy-Nutzung nur in der Pause:
+    Die Lehrperson gibt den Sitzungs-Code in der Pause bekannt und moderiert die Fragen selbst.
+    Nach der Pause beantwortet sie 2-3 Top-Fragen.
+  </li>
+  <li>
+    Keine Handy-Nutzung während der Vorlesung:
+    Die Lehrperson erstellt eine neue Sitzung am Ende jeder Vorlesung.
+    Die Studierenden können zuhause Fragen stellen und bewerten.
+    Das Fragen-Board moderiert eine Hilfskraft oder die Lehrperson selbst.
+    In den ersten 10 Minuten der nächsten Vorlesung geht die Lehrperson auf 2-3 Top-Fragen ein.
+  </li>
+  <li>
+    Keine Handy-Nutzung während der Vorlesung:
+    Die Lehrperson erstellt eine Sitzung für die gesamte Dauer des Kurses.
+    Eine Hilfskraft moderiert das Fragen-Board während des Semesters.
+    Die Lehrperson markiert die relevanten Fragen und löscht alle anderen.
+    Die Fragenliste dient so der Reflexion der Vorlesungsinhalte und zur Vorbereitung auf die Klausur.
+  </li>
+</ol>
+
+<h2>»Gender«-gerechte Sprache</h2>
+
+<p>
+  Screen Reader für Sehbehinderte und Blinde,
+  wie <a
+  href="https://chrome.google.com/webstore/detail/chromevox-classic-extensi/kgejglhpjiefppelpmljglcjbhoiplfn?hl=de"
+  target="_blank">ChromeVox</a>
+  (»frag.jetzt« wurde hierfür optimiert)
+  oder <a href="https://www.nvaccess.org/" target="_blank">NVDA</a>,
+  sprechen »gegenderte« Nomen unverständlich aus.
+  Wir verwenden deshalb das <a href="https://de.wikipedia.org/wiki/Generisches_Maskulinum" target="_blank">Generische
+  Maskulinum</a> für Texte und Labels in der App.
+</p>
diff --git a/src/assets/i18n/demo/demo-de.ts b/src/assets/i18n/demo/demo-de.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d99cc3372786deb2e6f52b22ae10612920fb7316
--- /dev/null
+++ b/src/assets/i18n/demo/demo-de.ts
@@ -0,0 +1,10 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-demo-de',
+  templateUrl: './demo-de.html',
+  styleUrls: ['./demo.scss']
+})
+
+export class DemoDeComponent {
+}
diff --git a/src/assets/i18n/demo/demo-en.html b/src/assets/i18n/demo/demo-en.html
new file mode 100644
index 0000000000000000000000000000000000000000..b4b69275c8489c9787a3b81aba6dc3ed3ffea5a5
--- /dev/null
+++ b/src/assets/i18n/demo/demo-en.html
@@ -0,0 +1,93 @@
+<div class="video">
+  <div class="videoWrapper">
+    <iframe tabindex="0"
+            width="560" height="315"
+            src="https://youtu.be/qHRC6z9VtWs?autoplay=0" frameborder="0"
+            allowfullscreen
+    ></iframe>
+  </div>
+</div>
+
+<h2>
+  Why »frag.jetzt«?
+</h2>
+
+<p>The classical lecture usually ends with: »Do you have any questions?« And always nobody answers or the same few
+  ask. Either nobody dares to ask questions in the large lecture hall or the questions one actually wanted to ask in the
+  course of the lecture are forgotten.
+
+<p>Those who want their lecture to be reflected upon and questioned need a
+  tool for anonymously asking questions. Such an <a href="https://github.com/thm-projects/frag.jetzt" target="_blank">Open
+    Source</a> tool is available free of charge with »frag.jetzt«. Are
+  there any concerns? Is the tool accessible, compliant with the data protection regulations, immediately usable with
+  any end device without any training or technical understanding? Three times yes.</p>
+
+<p>If I let »frag.jetzt« be used anonymously and thus without social control, don't I also invite abuse? No, because the
+  question list can be moderated live by an assistant: Only lecture-appropriate questions remain on the list.</p>
+
+<p>But I cannot answer all questions in the last ten minutes of my lecture. Sure. This is where the collective tool
+  aspect comes into play: Everyone in the audience can rate every question, in other words: to vote up or down. You can
+  answer the questions most highly rated by the auditorium immediately, the others, if you wish, later in the course
+  forum of the learning platform.</p>
+
+
+<h2>
+  What's so special about »frag.jetzt«?
+</h2>
+
+<p>
+  The teacher can award bonus points for goal-oriented and lecture-appropriate questions.
+  Students who want to take part in the bonus program must register and use their account at the session
+  register.
+  This is necessary when exporting the questions in order to be able to assign the identity of the question poser to the
+  bonus-winning questions on the basis of the e-mail address.
+  Registered students also remain anonymous for all others.
+</p>
+<p>
+  Any number of sessions can be created free of charge as a guest or registered user.
+  Only the sessions of registered users remain permanently.
+  Only 180 days after the last use of a session it will be deleted automatically.
+</p>
+<p>
+  »frag.jetzt« was optimized for accessibility with a screen reader and exclusive keyboard control.
+  The user interface meets the requirements of WCAG 2.1 AA.
+  Appropriate display options (»themes«) are available for beamer presentations in large lecture halls and for the
+  visually impaired.
+  In particular, the font size of the questions can be scaled at will.
+</p>
+<p>
+  »frag.jetzt« can be used completely anonymously when registering as a guest.
+  The accounts of registered users are stored and managed in accordance with the data protection regulations of the
+  DSGVO.
+  The program code is »Open Source Software« and can be viewed on GitHub.
+  »frag.jetzt« is operated as free »Software as a Service« by TransMIT GmbH, see imprint.
+</p>
+
+<h2>Mobile phone use</h2>
+
+<ol>
+  <li>
+    Mobile phone use during the lecture:
+    An assistant moderates the question board on site or from a distance.
+    10 minutes before the end of the lecture, the teacher answers 2-3 top questions on the beamer.
+  </li>
+  <li>
+    Mobile phone use only during the break:
+    The teacher announces the session code during the break and moderates the questions himself.
+    After the break she answers 2-3 top questions.
+  </li>
+  <li>
+    No mobile phone use during the lecture:
+    The teacher creates a new session at the end of each lecture.
+    Students can ask and rate questions at home.
+    The question board is moderated by an assistant or the teacher himself.
+    In the first 10 minutes of the next lecture the teacher answers 2-3 top questions.
+  </li>
+  <li>
+    No mobile phone use during the lecture:
+    The teacher creates a session for the entire duration of the course.
+    An assistant moderates the question board during the semester.
+    The teacher marks the relevant questions and deletes all others.
+    The question list thus serves to reflect on the lecture contents and to prepare for the exam.
+  </li>
+</ol>
diff --git a/src/assets/i18n/demo/demo-en.ts b/src/assets/i18n/demo/demo-en.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2a2c3c834b36bdb11e5465a908c875d3315c65a5
--- /dev/null
+++ b/src/assets/i18n/demo/demo-en.ts
@@ -0,0 +1,10 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-demo-en',
+  templateUrl: './demo-en.html',
+  styleUrls: ['./demo.scss']
+})
+
+export class DemoEnComponent {
+}
diff --git a/src/assets/i18n/demo/demo.scss b/src/assets/i18n/demo/demo.scss
new file mode 100644
index 0000000000000000000000000000000000000000..d9afe5b20d77a94b1209fb33d43281e1f12bc875
--- /dev/null
+++ b/src/assets/i18n/demo/demo.scss
@@ -0,0 +1,36 @@
+h2 {
+  padding-top: 20px;
+}
+
+p {
+  word-break: break-word;
+  -ms-hyphens: auto;
+  -webkit-hyphens: auto;
+  hyphens: auto;
+}
+
+ol {
+  padding-left: 1em;
+}
+
+li {
+  padding-bottom: 10px;
+}
+
+iframe {
+  width: 100%;
+}
+
+.videoWrapper {
+  position: relative;
+  padding-bottom: 56.25%; /* 16:9 */
+  height: 0;
+}
+
+.videoWrapper iframe {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+}
diff --git a/src/assets/i18n/help/help-de.html b/src/assets/i18n/help/help-de.html
new file mode 100644
index 0000000000000000000000000000000000000000..5ea752932bba9aadd57958766c19096a39531c26
--- /dev/null
+++ b/src/assets/i18n/help/help-de.html
@@ -0,0 +1,5 @@
+<mat-dialog-content>
+
+
+
+</mat-dialog-content>
diff --git a/src/assets/i18n/help/help-de.ts b/src/assets/i18n/help/help-de.ts
new file mode 100644
index 0000000000000000000000000000000000000000..49bed97ed6b8049648ea27dfd0a81524bafb0972
--- /dev/null
+++ b/src/assets/i18n/help/help-de.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-help-de',
+  templateUrl: './help-de.html',
+  styleUrls: ['./help.scss']
+})
+
+export class HelpDeComponent {}
diff --git a/src/assets/i18n/help/help-en.html b/src/assets/i18n/help/help-en.html
new file mode 100644
index 0000000000000000000000000000000000000000..042652729eb687c571ce1bd30486cb607c52bb02
--- /dev/null
+++ b/src/assets/i18n/help/help-en.html
@@ -0,0 +1,25 @@
+<mat-dialog-content>
+
+  <h2>Lecturer role</h2>
+  <p>Screencast in preparation</p>
+
+  <!-- TODO
+<div class="video">
+  <div class="videoWrapper">
+    <iframe tabindex="0"
+            width="560" height="349"
+            [ngClass]="{'mobileFrame': deviceType === 'mobile', 'desktopFrame': deviceType === 'desktop'}"
+            src="https://www.youtube.com/embed/RODwmMxLKa0?autoplay=0" frameborder="0"
+            allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen
+    ></iframe>
+  </div>
+</div>
+-->
+
+  <h2>Moderator role</h2>
+  <p>Screencast in preparation</p>
+
+  <h2>Student role</h2>
+  <p>Screencast in preparation</p>
+
+</mat-dialog-content>
diff --git a/src/assets/i18n/help/help-en.ts b/src/assets/i18n/help/help-en.ts
new file mode 100644
index 0000000000000000000000000000000000000000..57a1d302ac28d383872dc6e5d5926364dee0350e
--- /dev/null
+++ b/src/assets/i18n/help/help-en.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-help-en',
+  templateUrl: './help-en.html',
+  styleUrls: ['./help.scss']
+})
+
+export class HelpEnComponent {}
diff --git a/src/assets/i18n/help/help.scss b/src/assets/i18n/help/help.scss
new file mode 100644
index 0000000000000000000000000000000000000000..47ff0c09d584c1f58610ca0054a71ab6aa876e72
--- /dev/null
+++ b/src/assets/i18n/help/help.scss
@@ -0,0 +1,30 @@
+p {
+  word-break: break-word;
+  -ms-hyphens: auto;
+  -webkit-hyphens: auto;
+  hyphens: auto;
+}
+
+div {
+  font-family: Roboto, "Helvetica Neue", sans-serif;
+  color: var(--on-surface);
+}
+
+iframe {
+  width: 100%;
+}
+
+.videoWrapper {
+  position: relative;
+  padding-bottom: 56.25%; /* 16:9 */
+  padding-top: 25px;
+  height: 0;
+}
+.videoWrapper iframe {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+}
+
diff --git a/src/assets/i18n/home/de.json b/src/assets/i18n/home/de.json
index bed78dd0400fc6686dde8d24157112aebe612234..a96d1667962eb069dac92f17359ec860f36ca5db 100644
--- a/src/assets/i18n/home/de.json
+++ b/src/assets/i18n/home/de.json
@@ -1,108 +1,224 @@
 {
-	"header": {
-		"logout": "Abmelden",
-		"logged-out": "Ausloggen erfolgreich",
-		"back": "Zurück",
-		"my-sessions": "Meine Sessions",
-		"visited-sessions": "Besuchte Sessions",
-    "login": "Login",
-    "my-account": "Konto",
-    "my-guest-account": "Sessions",
-    "id": "ID",
-		"moderation-enabled": "Moderiert",
-		"delete-account": "Account löschen",
-		"sure": "Bist du sicher?",
-		"really-delete-account": "Willst du dein Konto mit den zugehörigen Sessions wirklich unwiderruflich löschen?",
-		"account-deleted": "Dein Konto wurde erfolgreich gelöscht.",
-		"abort": "Abbrechen",
-		"delete": "Löschen"
-	},
-	"login-page": {
-		"creator": "Dozent/in",
-		"participant": "Student/in",
-		"password-reset": "Passwort vergessen?",
-		"not-registered": "Noch kein Konto?",
-		"register": "Registrieren",
-		"welcome": "Online fragen | Fragen voten",
-		"login": "Login"
-	},
-	"home-page": {
-		"join-demo-session": "Öffentliche Session betreten",
-		"session-id": "Session-ID",
-		"no-room-found": "Es wurde keine Session mit dieser ID gefunden.",
-		"please-enter": "… sagt dir dein/e Dozent/in",
-		"exactly-8": "Eine Session-ID hat genau 8 Ziffern.",
-		"create-session": "Neue Session",
-		"no-empty-name": "Bitte gib einen Namen für die Session ein.",
-		"created-1": "Session '",
-		"created-2": "' erfolgreich erstellt",
-		"only-numbers": "Eine Session-ID besteht aus Ziffern.",
-		"update-available": "Eine neue Version ist verfügbar.",
-		"install": "Installieren"
-	},
-	"login": {
-    "header": "Login",
-		"email": "E-Mail",
-		"email-invalid": "E-Mail-Adresse ungültig",
-		"email-required": "E-Mail-Adresse erforderlich",
-		"guest-login": "Anmelden als Gast",
-		"input-incorrect": "Bitte prüfe deine Eingaben.",
-		"login-successful": "Login erfolgreich",
-		"login": "Anmelden mit Konto",
-		"login-data-incorrect": "Benutzername oder Passwort nicht korrekt",
-		"password": "Passwort",
-		"password-required": "Passwort erforderlich",
-		"activate": "Aktivieren",
-		"activation-key": "Aktivierungsschlüssel",
-		"activation-key-required": "Aktivierungsschlüssel erforderlich",
-		"activation-key-incorrect": "Aktivierungsschlüssel falsch",
-		"or": "oder",
-		"guest-login-tooltip": "Erstellte Sessions werden mit allen Fragen nach dem Ausloggen gelöscht.",
-		"login-tooltip": "Sessions mit allen Fragen werden für 180 Tage gespeichert."
-	},
-	"password-reset": {
-		"email": "E-Mail",
-		"email-invalid": "E-Mail-Adresse ungültig",
-		"email-required": "E-Mail-Adresse erforderlich",
-		"input-incorrect": "Bitte prüfe deine Eingaben.",
-		"reset-password": "Passwort zurücksetzen",
-		"reset-successful": "Passwort wurde zurückgesetzt. Bitte prüfe deine E-Mails."
-	},
-	"register": {
-		"email": "E-Mail",
-		"email-verify": "E-Mail bestätigen",
-		"email-invalid": "E-Mail-Adresse ungültig",
-		"email-required": "E-Mail-Adresse erforderlich",
-		"email-unmatch": "E-Mail-Adressen stimmen nicht überein",
-		"password": "Passwort",
-		"password-required": "Passwort erforderlich",
-		"password-unmatch": "Passwörter stimmen nicht überein",
-		"password-verify": "Passwort bestätigen",
-		"register": "Registrieren",
-		"register-successful": "Erfolgreich registriert. Bitte prüfe deine E-Mails.",
-		"register-unsuccessful": "Bitte prüfe deine Eingaben.",
-		"register-request-error": "Etwas ist bei der Registierung fehlgeschlagen. Hast du dich vielleicht schon registriert?"
-	},
-	"session": {
-		"session-name": "Name der Session",
-		"description": "Beschreibung der Session",
-		"max-ls": "Max. Zeichen:",
-		"create-session": "Session erstellen"
+  "cookies": {
+    "accept": "Akzeptieren",
+    "accept-description": "Bestätigt die Verwendung der Local-Storage-Technik und schaltet die Anwendung frei.",
+    "cancel": "Ablehnen",
+    "cancel-description": "Lehnt die Verwendung der Local-Storage-Technik ab und sperrt die Anwendung.",
+    "info-label": "Öffnet ein Dialogfenster mit der Datenschutzerklärung zu frag.jetzt.",
+    "title": "Datenschutz"
+  },
+  "data-protection": {
+    "cancel": "Ablehnen",
+    "cancel-description": "Lehnt die Datenschutzerklärung ab.",
+    "consent": "Akzeptieren",
+    "consent-description": "Akzeptiert die Datenschutzerklärung der Anwendung.",
+    "title": "Datenschutz"
+  },
+  "demo": {
+    "cancel": "Schließen",
+    "cancel-description": "Schließt die Einführung"
+  },
+  "delete-account": {
+    "cancel": "Abbrechen",
+    "cancel-description": "Löschung des Kontos abbrechen",
+    "delete": "Löschen",
+    "delete-description": "Konto löschen"
   },
   "footer": {
-    "demo": "Demo",
+    "accessibility-data_protection": "Öffnet die Datenschutzerklärung.",
+    "accessibility-demo": "Öffnet die Einführung zu frag.jetzt.",
+    "accessibility-help": "Öffnet die Hilfe.",
+    "accessibility-imprint": "Öffnet das Impressum.",
+    "accessibility-language": "Öffnet die Sprachauswahl.",
+    "accessibility-style": "Öffnet die Anzeigeoptionen für hohen Kontrast, Hörsaal-Projektion, heller und dunkler Hintergrund.",
+    "demo": "Einführung",
     "dsgvo": "Datenschutz",
-    "imprint": "Impressum",
-    "will-open": " wird in einem neuen Fenster geöffnet...",
-    "open": "Öffnen",
+    "english": "Englisch",
+    "german": "Deutsch",
     "help": "Hilfe",
-    "dark": "Dunkler Hintergrund",
-    "bright": "Heller Hintergrund",
-    "beamer": "Für den Beamer optimiert (in Arbeit)",
-    "wai": "Barrierefrei nach WCAG 2.1 (in Arbeit)",
-    "style": "Stil",
+    "imprint": "Impressum",
     "language": "Sprache",
-    "english": "Englisch",
-    "german": "Deutsch"
+    "style": "Anzeige"
+  },
+  "header": {
+    "abort": "Abbrechen",
+    "accessibility-back": "Führt zur vorherigen Seite",
+    "accessibility-login": "Öffnet das Anmeldungs-Fenster.",
+    "accessibility-session": "Öffnet das Sitzungs-Menü. Hier kannst du deine besuchten Sitzungen einsehen oder dich von deinem Konto abmelden.",
+    "account-deleted": "Dein Konto wurde gelöscht.",
+    "back": "Abbrechen",
+    "delete": "Löschen",
+    "delete-account": "Konto löschen",
+    "id": "Code",
+    "logged-out": "Abmelden erfolgreich",
+    "login": "Anmelden",
+    "logout": "Abmelden",
+    "moderation-enabled": "Moderiert",
+    "my-account": "Konto",
+    "my-guest-account": "Sitzungen",
+    "my-sessions": "Meine Sitzungen",
+    "really-delete-account": "Willst du dein Konto mit allen Sitzungen unwiderruflich löschen?",
+    "sure": "Bist du sicher?",
+    "visited-sessions": "Besuchte Sitzungen"
+  },
+  "help": {
+    "cancel": "Schließen",
+    "cancel-description": "Schließt die Hilfe",
+        "title": "Hilfe"
+  },
+  "home-page": {
+    "accessibility-create": "Erstellt eine neue Sitzung.",
+    "accessibility-join-button": "Betritt die Sitzung, deren Code du eingegeben hast.",
+    "accessibility-join-input": "Hier kannst du den Code der Sitzung eingeben der du beitreten möchtest. Den Code sagt dir dein Dozent.",
+    "create-session": "Neue Sitzung",
+    "created-1": "Die Sitzung '",
+    "created-2": "' wurde erstellt.",
+    "exactly-8": "Der Sitzungs-Code ist eine Kombination aus genau 8 Ziffern.",
+    "live-announcer": "Willkommen auf der Seite fragpunktjetzt. Um Informationen zu Tastenkombinationen zu erhalten drücke jetzt die Enter-Taste oder rufe die Ansage zu einem späteren Zeitpunkt mit der Escape-Taste auf.",
+    "live-announcer-user": "Du befindest dich jetzt auf der Benutzer-Seite. Um Informationen zu Tastenkombinationen zu erhalten drücke jetzt die Enter-Taste oder rufe die Ansage zu einem späteren Zeitpunkt mit der Escape-Taste auf.",
+    "install": "Installieren",
+    "no-empty-name": "Bitte gib einen Namen für die Sitzung ein.",
+    "no-room-found": "Es wurde keine Sitzung mit diesem Code gefunden.",
+    "only-numbers": "Der Sitzungs-Code besteht ausschließlich aus Ziffern.",
+    "please-enter": "Den Code sagt dir dein Dozent",
+    "room-name-input": "Gib hier den Namen der Sitzung die du erstellen möchtest ein.",
+    "session-id": "Sitzungs-Code",
+    "update-available": "Eine neue Version ist verfügbar."
+  },
+  "imprint": {
+    "cancel": "Schließen",
+    "cancel-description": "Schließt das Impressum.",
+    "title": "Impressum"
+  },
+  "introduction": {
+    "cancel": "Schließen",
+    "cancel-description": "Schließe die Einführung und gehe zurück zur Anmeldung.",
+    "title": "»frag.jetzt«"
+  },
+  "login": {
+    "activation-key": "Aktivierungsschlüssel",
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "email": "E-Mail Adresse als Benutzername",
+    "email-description": "Gib hier deine E-Mail Adresse ein.",
+    "email-invalid": "E-Mail Adresse ungültig",
+    "email-required": "E-Mail Adresse erforderlich",
+    "guest-login": "Anmelden als Gast",
+    "guest-login-description": "Als Gast anmelden",
+    "guest-login-tooltip": "Als Gast erstellte Sitzungen werden nach dem Abmelden wieder gelöscht. Mit einem Konto erstellte Sitzungen werden nach dem letzten Besuch für 180 Tage gespeichert.",
+    "header": "Anmelden",
+    "input-incorrect": "Bitte prüfe deine Eingaben.",
+    "login": "Anmelden mit Konto",
+    "login-data-incorrect": "Benutzername oder Passwort falsch",
+    "login-description": "Mit den eingegebenen Kontodaten anmelden",
+    "login-successful": "Anmeldung erfolgreich",
+    "not-registered": "Noch kein Konto?",
+    "or": "oder",
+    "password": "Passwort",
+    "password-description": "Gib hier dein Passwort ein.",
+    "password-required": "Passwort erforderlich",
+    "password-reset": "Passwort vergessen?",
+    "register": "Registrieren",
+    "restart-account-activation-button": "Erneut senden",
+    "restart-account-activation-correct": "Der Aktivierungsschlüssel wurde erneut gesendet.",
+    "restart-account-activation-tooltip": "Sendet den Aktivierungsschlüssel erneut an die angegebene Adresse",
+    "welcome": "Online fragen & Fragen bewerten"
+  },
+  "overlay": {
+    "cancel": "Doch akzeptieren?",
+    "cancel-description": "Öffnet den Dialog zur Verwendung der Local-Storage-Technik in frag.jetzt",
+    "message": "Du hast die Verwendung der Local-Storage-Technik abgelehnt. Ohne diese funktioniert die App leider nicht.",
+    "title": "Nutzung nicht möglich"
+  },
+  "password-reset": {
+    "a11y-new_password1": "Gib hier dein neues Passwort ein",
+    "a11y-new_password2": "Gib hier erneut dein neues Passwort ein",
+    "a11y-password_reset_button": "Sendet an die eingegebene E-Mail ein Passwortrücksetz-Schlüssel, mit dem ein neues Passwort gesetzt werden kann",
+    "a11y-password_reset_key": "Gib hier den Passwortrücksetz-Schlüssel ein, den du per E-Mail erhalten hast",
+    "a11y-password_set_button": "Setzt das neue Passwort",
+    "a11y-password_set_email": "Gib hier deine E-Mail Adresse ein, um ein neues Passwort zu setzten",
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "email": "E-Mail Adresse",
+    "email-description": "Gib hier deine E-Mail Adresse ein, um dein Passwort zurückzusetzen.",
+    "email-invalid": "E-Mail Adresse ungültig",
+    "email-required": "E-Mail Adresse erforderlich",
+    "forgot-password": "Passwort vergessen?",
+    "input-incorrect": "Bitte prüfe deine Eingaben.",
+    "key": "Passwortrücksetz-Schlüssel",
+    "key-required": "Passwortrücksetz-Schlüssel erforderlich",
+    "new-password": "Neues Passwort",
+    "new-password-successful": "Dein neues Passwort wurde erfolgreich gesetzt.",
+    "reset-button-description": "Setzt das Passwort des Accounts zurück.",
+    "reset-password": "Passwort zurücksetzen",
+    "reset-password-description": "Hier kannst du dein Passwort zurücksetzen.",
+    "reset-successful": "Dein Passwort wurde zurückgesetzt. Bitte prüfe dein Postfach.",
+    "set-button-description": "Setzt für den Account das neue Passwort",
+    "set-new-password": "Setze ein neues Passwort mit dem Schlüssel-Code, der dir zugesandt wurde:",
+    "set-new-password-button": "Setze Passwort"
+  },
+  "register": {
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "email": "E-Mail Adresse",
+    "email-description": "Gib hier deine E-Mail-Adresse ein.",
+    "email-description-repeat": "Gib hier bitte erneut deine E-Mail-Adresse ein, um sicherzustellen, dass du dich nicht vertippt hast.",
+    "email-invalid": "E-Mail-Adresse ungültig",
+    "email-required": "E-Mail-Adresse erforderlich",
+    "email-unmatch": "E-Mail-Adressen stimmen nicht überein",
+    "email-verify": "E-Mail-Adresse wiederholen",
+    "forgot-password": "Passwort vergessen?",
+    "password": "Passwort",
+    "password-description": "Gib hier das Passwort, mit dem du dich registrieren möchtest, ein.",
+    "password-description-repeat": "Gib hier bitte erneut das Passwort, mit dem du dich registrieren möchtest, ein, um sicherzustellen, dass du dich nicht vertippt hast.",
+    "password-required": "Passwort erforderlich",
+    "password-unmatch": "Passwörter stimmen nicht überein",
+    "password-verify": "Passwort wiederholen",
+    "register": "Registrieren",
+    "register-description": "Registrierung abschließen",
+    "register-request-error": "Etwas ist bei der Registrierung fehlgeschlagen. Hast du dich vielleicht schon registriert?",
+    "register-successful": "Erfolgreich registriert. Bitte prüfe dein Postfach.",
+    "register-unsuccessful": "Bitte prüfe deine Eingaben."
+  },
+  "room-create": {
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "create-room": "Sitzung erstellen",
+    "create-room-description": "Neue Sitzung erstellen."
+  },
+  "room-list": {
+    "creator-role": "Sitzungsersteller",
+    "entry": "Eintrag ",
+    "executive-moderator-role": "Moderator",
+    "filter": "In diesem Textfeld kannst du die besuchten Sitzungen nach Name oder Code filtern.",
+    "filter-message": "Nach Name oder Code filtern",
+    "join-message-template": "An der Sitzung {{session}} mit dem Code {{id}} und in der Rolle {{role}} teilnehmen.",
+    "moderator-role": "Moderator",
+    "no-room-history": "Du hast bisher an keiner Sitzung teilgenommen.",
+    "panel-join-button": "",
+    "panel-session-id": "Code",
+    "panel-session-name": "Sitzung",
+    "panel-user-role": "Rolle",
+    "participant-role": "Teilnehmer",
+    "session-history": "Dein Sitzungsverlauf enthält {{count}} Sitzungen.",
+    "session-history-1": "Dein Sitzungsverlauf enthält genau eine Sitzung.",
+    "session-history-label": "Nachfolgend findest du eine Liste deiner Sitzungen."
+  },
+  "session": {
+    "create-session": "Sitzung erstellen",
+    "description": "Beschreibung der Sitzung",
+    "join": "Sitzung beitreten",
+    "max-ls": "Maximale Anzahl Zeichen:",
+    "session-name": "Name der Sitzung"
+  },
+  "user-activation": {
+    "activate": "Aktivieren",
+    "activate-description": "Aktiviert den Account",
+    "activation-key": "Aktivierungs-Schlüssel",
+    "activation-key-incorrect": "Aktivierungs-Schlüssel falsch",
+    "activation-key-required": "Aktivierungs-Schlüssel erforderlich",
+    "activation-key-input-description": "Gib hier den Aktivierungs-Schlüssel ein, den du per E-Mail zugesendet bekommen hast.",
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen"
   }
 }
diff --git a/src/assets/i18n/home/en.json b/src/assets/i18n/home/en.json
index 4c34681e289a1252b3bdc8a48124bcc79aa7035d..12f840bde4924d181e711c62e40b73ec547270eb 100644
--- a/src/assets/i18n/home/en.json
+++ b/src/assets/i18n/home/en.json
@@ -1,108 +1,226 @@
 {
-	"header": {
-		"logout": "Log out",
-		"logged-out": "Logging out successful",
-		"back": "Back",
-		"my-sessions": "My sessions",
-		"visited-sessions": "Visited sessions",
+  "cookies": {
+    "accept": "Accept",
+    "accept-description": "Accept the use of a local storage and proceed to the app.",
+    "cancel": "Reject",
+    "cancel-description": "Reject usage of a local storage and exit the app.",
+    "info-label": "Opens a dialog with the frag.jetzt data protection policy.",
+    "title": "Data Privacy"
+  },
+  "data-protection": {
+    "cancel": "Reject",
+    "cancel-description": "Reject the app's privacy policy and close dialog",
+    "consent": "Accept",
+    "consent-description": "Accept the app's privacy policy and close dialog",
+    "title": "Data Privacy"
+  },
+  "demo": {
+    "cancel": "Close",
+    "cancel-description": "Close the introduction dialog"
+  },
+  "delete-account": {
+    "cancel": "Cancel",
+    "cancel-description": "Cancel account deletion",
+    "delete": "Delete",
+    "delete-description": "Delete your Account"
+  },
+  "footer": {
+    "accessibility-data_protection": "Open the privacy statement.",
+    "accessibility-demo": "Open the introduction.",
+    "accessibility-help": "Open help.",
+    "accessibility-imprint": "Open the imprint.",
+    "accessibility-language": "Open the language selector.",
+    "accessibility-style": "Open the display selector.",
+    "demo": "Introduction",
+    "dsgvo": "Data Protection",
+    "english": "English",
+    "german": "German",
+    "help": "Help",
+    "imprint": "Imprint",
+    "language": "Language",
+    "open": "Open",
+    "style": "Display"
+  },
+  "header": {
+    "abort": "Cancel",
+    "accessibility-back": "Go back to the previous page",
+    "accessibility-login": "Open the login window",
+    "accessibility-session": "Open the session menu. Here you can view the sessions you have attended or log out of your account.",
+    "account-deleted": "Your account has been deleted.",
+    "back": "Cancel",
+    "delete": "Delete",
+    "delete-account": "Delete account",
+    "id": "Key",
+    "logged-out": "Logging out successful",
     "login": "Login",
+    "logout": "Log out",
+    "moderation-enabled": "Moderated",
     "my-account": "My account",
     "my-guest-account": "Sessions",
-    "id": "ID",
-		"moderation-enabled": "Moderated",
-		"delete-account": "Delete account",
-    "sure": "Are you sure?",
+    "my-sessions": "My sessions",
     "really-delete-account": "Do you really want to irrevocably delete your account with the associated sessions?",
-    "account-deleted": "Your account has been deleted successfully.",
-    "abort": "Cancel",
-    "delete": "Delete"
-	},
-	"login-page": {
-		"creator": "Professor",
-		"participant": "Student",
-		"password-reset": "Forgot your password?",
-		"not-registered": "Don't have an account yet?",
-		"register": "Register",
-		"welcome": "Ask online | vote questions",
-		"login": "Login"
-	},
-	"home-page": {
-		"join-demo-session": "Join public session",
-		"session-id": "Session ID",
-		"no-room-found": "No session found with this ID",
-		"please-enter": "… your professor tells you",
-		"exactly-8": "A session ID has exactly 8 digits.",
-		"create-session": "New session",
-		"no-empty-name": "Please enter a name.",
-		"created-1": "Session '",
-		"created-2": "' successfully created",
-		"only-numbers": "A session ID only contains digits.",
-		"update-available": "A newer version is available.",
-		"install": "Install"
-	},
-	"login": {
+    "sure": "Are you sure?",
+    "visited-sessions": "Visited sessions"
+  },
+  "help": {
+    "cancel": "Close",
+    "cancel-description": "Closes the help dialog",
+    "title": "Help"
+  },
+  "home-page": {
+    "accessibility-create": "Create a new session",
+    "accessibility-join-button": "Enter the session with the specified session key.",
+    "accessibility-join-input": "Here you can enter the session key of the session you want to join.",
+    "create-session": "New session",
+    "created-1": "Session '",
+    "created-2": "' successfully created",
+    "exactly-8": "A session key has exactly 8 digits.",
+    "accessibility-join-input": "Here you can enter the  key of the session you want to join. Your lecturer will tell you the session key.",
+    "live-announcer": "Welcome to fragpunktjetzt. To get information about key combinations press the Enter key or call the announcement later with the Escape key.",
+    "live-announcer-user": "You are now on the user page. To get information about key combinations press the Enter key or call the announcement later with the Escape key.",
+    "install": "Install",
+    "no-empty-name": "Please enter a name.",
+    "no-room-found": "No session found with this key",
+    "only-numbers": "A session key only contains digits.",
+    "please-enter": "Ask the lecturer for the key",
+    "room-name-input": "Enter the name of the session you want to create here.",
+    "session-id": "Session key",
+    "update-available": "An update is available."
+  },
+  "imprint": {
+    "cancel": "Close",
+    "cancel-description": "Close the imprint dialog.",
+    "title": "Imprint"
+  },
+  "introduction": {
+    "cancel": "Close",
+    "cancel-description": "Close introduction.",
+    "title": "»frag.jetzt«"
+  },
+  "login": {
+    "activation-key": "Activation key",
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
+    "email": "E-mail",
+    "email-description": "Enter your e-mail address here.",
+    "email-invalid": "E-mail is invalid",
+    "email-required": "E-mail required",
+    "guest-login": "Log in as a guest",
+    "guest-login-description": "Log in as a guest",
+    "guest-login-tooltip": "Created sessions will be deleted after logout. Sessions created with an account are saved for 180 days after the last visit.",
     "header": "Log in",
+    "input-incorrect": "Please check your data.",
+    "login": "Log in with account",
+    "login-data-incorrect": "Username or password incorrect",
+    "login-description": "Log in with the entered account data",
+    "login-successful": "Login successful",
+    "login-tooltip": "Sessions will be stored for 180 days.",
+    "not-registered": "Don't have an account yet?",
+    "or": "or",
+    "password": "Password",
+    "password-required": "Password required",
+    "password-reset": "Forgot your password?",
+    "register": "Register",
+    "restart-account-activation-button": "Send again",
+    "restart-account-activation-correct": "Activation key sent again",
+    "restart-account-activation-tooltip": "Sends the activation key again",
+    "welcome": "Ask online & vote questions"
+  },
+  "overlay": {
+    "cancel": "Accept after all?",
+    "cancel-description": "Opens the local storage setting dialog",
+    "message": "You have rejected the use of a local storage. Without it the app will not work.",
+    "title": "Use not possible"
+  },
+  "password-reset": {
+    "a11y-new_password1": "Enter your new password here",
+    "a11y-new_password2": "Enter your new password here again",
+    "a11y-password_reset_button": "Sends a password reset key to the entered e-mail, with which a new password can be set.",
+    "a11y-password_reset_key": "Enter the password reset key you received by email here",
+    "a11y-password_set_button": "Sets the new password",
+    "a11y-password_set_email": "Enter your email address here to set a new password",
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
     "email": "E-mail",
-		"email-invalid": "E-mail is invalid",
-		"email-required": "E-mail required",
-		"guest-login": "Log in as a guest",
-		"input-incorrect": "Please check your data.",
-		"login-successful": "Login successful",
-		"login": "Sign in",
-		"login-data-incorrect": "Username or password incorrect",
-		"password": "Password",
-		"password-required": "Password required",
-		"activate": "Activate",
-		"activation-key": "Activation key",
-		"activation-key-required": "Activation key required",
-		"activation-key-incorrect": "Activation key is incorrect.",
-		"or": "or",
-		"guest-login-tooltip": "Created sessions will be deleted after logout.",
-		"login-tooltip": "Sessions will be stored for 180 days."
-	},
-	"password-reset": {
-		"email": "E-mail",
-		"email-invalid": "E-mail is invalid.",
-		"email-required": "E-mail required",
-		"input-incorrect": "Please check your data.",
-		"reset-password": "Reset password",
-		"reset-successful": "Password was reset. Please check your mails."
-	},
-	"register": {
-		"email": "E-mail",
-		"email-verify": "Verify e-mail",
-		"email-invalid": "E-mail is invalid.",
-		"email-required": "E-mail required",
-		"email-unmatch": "E-mails do not match.",
-		"password": "Password",
-		"password-required": "Password required",
-		"password-unmatch": "Passwords do not match.",
-		"password-verify": "Verify password",
-		"register": "Register",
-		"register-successful": "Successfully registered. Please check your mails.",
-		"register-unsuccessful": "Please check your data.",
-		"register-request-error": "Something went wrong with the registration. Maybe you already made the account?"
-	},
-	"session": {
-		"session-name": "Session name",
-		"description": "Description",
-		"max-ls": "Max. characters:",
-		"create-session": "Create session"
-	},
-  "footer": {
-    "demo": "Demo",
-    "dsgvo": "Data Protection",
-    "imprint": "Imprint",
-    "will-open": " will be opened in a new tab...",
-    "open": "Open",
-    "help": "Help",
-    "dark": "Dark background",
-    "bright": "Bright background",
-    "beamer": "Optimized for the projector (work in progress)",
-    "wai": "Accessible according to WCAG 2.1 (work in progress)",
-    "style": "Style",
-    "language": "Language",
-    "english": "English",
-    "german": "German"
+    "email-description": "Enter your email address here to reset your password.",
+    "email-invalid": "E-mail is invalid.",
+    "email-required": "E-mail required",
+    "forgot-password": "Forgot the password?",
+    "input-incorrect": "Please check your data.",
+    "key": "Password reset key",
+    "key-required": "Password reset key required",
+    "new-password": "New password",
+    "new-password-successful": "The new password has been set.",
+    "reset-button-description": "Resets the password of the account",
+    "reset-password": "Reset password",
+    "reset-password-description": "Reset password",
+    "reset-successful": "Password was reset. Please check your mails.",
+    "set-button-description": "Set the new password for the account",
+    "set-new-password": "Set a new password with the key code that was sent to you:",
+    "set-new-password-button": "Set password"
+  },
+  "register": {
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
+    "email": "E-mail",
+    "email-description": "Enter your e-mail address here.",
+    "email-description-repeat": "Please enter your e-mail address again to ensure that you have not mistyped.",
+    "email-invalid": "E-mail is invalid.",
+    "email-required": "E-mail required",
+    "email-unmatch": "E-mails do not match.",
+    "email-verify": "Verify e-mail",
+    "forgot-password": "Forgot the password?",
+    "password": "Password",
+    "password-description": "Enter the password you want to register with here.",
+    "password-description-repeat": "Please enter the password you want to register with again to make sure that you have not mistyped it.",
+    "password-required": "Password required",
+    "password-unmatch": "Passwords do not match.",
+    "password-verify": "Verify password",
+    "register": "Register",
+    "register-description": "Register User",
+    "register-request-error": "Something went wrong with the registration. Maybe you already made the account?",
+    "register-successful": "Successfully registered. Please check your mails.",
+    "register-unsuccessful": "Please check your data."
+  },
+  "room-create": {
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
+    "create-room": "Create Session",
+    "create-room-description": "Create new session"
+  },
+  "room-list": {
+    "creator-role": "Session creator",
+    "entry": "Entry ",
+    "executive-moderator-role": "Moderator",
+    "filter": "Here you can filter your visited sessions.",
+    "filter-message": "Filter by name or key",
+    "join-message-template": "Join the session {{session}} with code {{id}} and in the role {{role}}",
+    "moderator-role": "Moderator",
+    "no-room-history": "You haven't joined any sessions yet.",
+    "panel-join-button": "",
+    "panel-session-id": "Key",
+    "panel-session-name": "Session",
+    "panel-user-role": "Role",
+    "participant-role": "Participant",
+    "session-history": "Your session history contains {count}} sessions.",
+    "session-history-1": "Your session history contains one session.",
+    "session-history-label": "Below you will find a list of your attended sessions."
+  },
+  "session": {
+    "create-session": "Create session",
+    "description": "Session description",
+    "join": "Join session",
+    "max-ls": "Max. characters:",
+    "session-name": "Session name"
+  },
+  "user-activation": {
+    "activate": "Activate",
+    "activate-description": "Activates the account",
+    "activation-key": "Activation key",
+    "activation-key-incorrect": "Activation key is incorrect.",
+    "activation-key-required": "Activation key required",
+    "activation-key-input-description": "Enter the activation key that you received by e-mail.",
+    "cancel": "Cancel",
+    "cancel-description": "Cancel"
   }
 }
diff --git a/src/assets/i18n/imprint/imprint-de.html b/src/assets/i18n/imprint/imprint-de.html
new file mode 100644
index 0000000000000000000000000000000000000000..987fe8fa96268a2dc81ce6552ab6b770cb0d76bb
--- /dev/null
+++ b/src/assets/i18n/imprint/imprint-de.html
@@ -0,0 +1,43 @@
+<div class="max-height">
+
+  <p>
+    »frag.jetzt« wird vom Land Hessen im Rahmen des HMWK-Verbundprojekts <a href="https://www.digll-hessen.de/de" target="_blank">»Digital gestütztes Lehren und Lernen in Hessen«</a> (digLL) gefördert.<br>
+    <br>
+    <img src="https://arsnova.thm.de/blog/wp-content/uploads/2015/07/HMWK-Logo-300x136.png" alt="HMWK-Logo" width="200px"><br>
+    <br>
+    <img src="https://digll.studiumdigitale.uni-frankfurt.de/files/2019/06/digLL_Logo_small.png" alt="digLL-Logo" width="200px">
+  </p>
+
+  <p>
+    <a href="https://arsnova.thm.de/blog/wp-content/uploads/2019/09/Projektantrag-DigLL@THM-frag_jetzt.pdf" target="_blank">Projektskizze zu »frag.jetzt«</a>
+  </p>
+
+  <p>
+    Der Betrieb der <a href="https://github.com/thm-projects/frag.jetzt" target="_blank">Open-Source-Webanwendung</a>
+    »frag.jetzt« ist eine kostenlose Dienstleistung
+    (»Soft&shy;ware as a Service«) der TransMIT-Gesellschaft für
+    Technologietransfer mbH, Projektbereich für mobile An&shy;wen&shy;dun&shy;gen.<br>
+    <br>
+    Kerkrader Straße 3<br>
+    D-35394 Gießen<br>
+    <br>
+    c/o THM<br>
+    Fachbereich Mathematik, Naturwissenschaften und Informatik<br>
+    Prof. Dr. Klaus Quibeldey-Cirkel<br>
+    Lehrstuhl für Softwaretechnik<br>
+    <br>
+    Wiesenstraße 14<br>
+    D-35390 Gießen<br>
+    <br>
+    Telefon: +49 641 309-2450<br>
+    Mail: klaus.quibeldey-cirkel@transmit.de<br>
+    <br>
+    Sitz der Gesellschaft: Gießen<br>
+    Website: https://www.transmit.de<br>
+    Rechtsform: GmbH<br>
+    Amtsgericht: Gießen HRB 3036<br>
+    USt-IdNr.: DE 188 685 037<br>
+    <br>
+  </p>
+
+</div>
diff --git a/src/assets/i18n/imprint/imprint-de.ts b/src/assets/i18n/imprint/imprint-de.ts
new file mode 100644
index 0000000000000000000000000000000000000000..28aa275b6086cb6d91249acfc717caa60622129d
--- /dev/null
+++ b/src/assets/i18n/imprint/imprint-de.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-imprint-de',
+  templateUrl: './imprint-de.html',
+  styleUrls: ['./imprint.scss']
+})
+
+export class ImprintDeComponent {}
diff --git a/src/assets/i18n/imprint/imprint-en.html b/src/assets/i18n/imprint/imprint-en.html
new file mode 100644
index 0000000000000000000000000000000000000000..ad0692a12b933b051fede06f3b0d9d2ee662f76a
--- /dev/null
+++ b/src/assets/i18n/imprint/imprint-en.html
@@ -0,0 +1,44 @@
+<div class="max-height">
+
+  <p>
+    "frag.jetzt" is funded by the State of the Federal State of Hessen as part of the HMWK joint project <a
+    href="https://www.digll-hessen.de/de" target="_blank">"Digitally supported teaching and learning in the State of Hessen"</a> (digLL).<br>
+    <br>
+    <img src="https://arsnova.thm.de/blog/wp-content/uploads/2015/07/HMWK-Logo-300x136.png" alt="HMWK-Logo" width="200px"><br>
+    <br>
+    <img src="https://digll.studiumdigitale.uni-frankfurt.de/files/2019/06/digLL_Logo_small.png" alt="digLL-Logo" width="200px">
+  </p>
+
+  <p>
+    <a href="https://arsnova.thm.de/blog/wp-content/uploads/2019/09/Projektantrag-DigLL@THM-frag_jetzt.pdf" target="_blank">Project outline for "frag.jetzt"</a>
+  </p>
+
+  <p>
+    The operation of the <a href="https://github.com/thm-projects/frag.jetzt" target="_blank">open-source web application</a> »frag.jetzt« is a free service
+    (»Software as a Service«) of the TransMIT GmbH, project division for mobile applications.<br>
+    <br>
+    Kerkrader Straße 3<br>
+    D-35394 Gießen<br>
+    Germany<br>
+    <br>
+    c/o THM<br>
+    Department of Mathematics, Natural Sciences and Informatics<br>
+    Prof. Dr. Klaus Quibeldey-Cirkel<br>
+    Professorship for Software Engineering<br>
+    <br>
+    Wiesenstraße 14<br>
+    D-35390 Gießen<br>
+    Germany<br>
+    <br>
+    Phone: +49 641 309-2450<br>
+    Mail: klaus.quibeldey-cirkel@transmit.de<br>
+    <br>
+    Company headquarters: Gießen<br>
+    Website: https://www.transmit.de<br>
+    Legal form: GmbH<br>
+    Local court: Gießen HRB 3036<br>
+    German VAT no.: DE 188 685 037<br>
+    <br>
+  </p>
+
+</div>
diff --git a/src/assets/i18n/imprint/imprint-en.ts b/src/assets/i18n/imprint/imprint-en.ts
new file mode 100644
index 0000000000000000000000000000000000000000..34900f5581656a1c93e3c9d2b96910a200a50afe
--- /dev/null
+++ b/src/assets/i18n/imprint/imprint-en.ts
@@ -0,0 +1,9 @@
+import { Component } from '@angular/core';
+
+@Component({
+  selector: 'app-imprint-en',
+  templateUrl: './imprint-en.html',
+  styleUrls: ['./imprint.scss']
+})
+
+export class ImprintEnComponent {}
diff --git a/src/assets/i18n/imprint/imprint.scss b/src/assets/i18n/imprint/imprint.scss
new file mode 100644
index 0000000000000000000000000000000000000000..535f2ab644e0bd98f4d6fa04e7c56f7658fc5ab4
--- /dev/null
+++ b/src/assets/i18n/imprint/imprint.scss
@@ -0,0 +1,11 @@
+p {
+  word-break: break-word;
+  -ms-hyphens: auto;
+  -webkit-hyphens: auto;
+  hyphens: auto;
+}
+
+div {
+  font-family: Roboto, "Helvetica Neue", sans-serif;
+  color: var(--on-surface);
+}
diff --git a/src/assets/i18n/participant/de.json b/src/assets/i18n/participant/de.json
index 3c1f0ebbcb336115662a0c8bf99fcd49039bba01..c2b6bcd8813af10e41413dc8a17e04d10985d201 100644
--- a/src/assets/i18n/participant/de.json
+++ b/src/assets/i18n/participant/de.json
@@ -1,72 +1,122 @@
 {
-  "home-page": {
-    "no-room-found": "Es wurde keine Session mit dieser ID gefunden.",
-    "please-enter": "Bitte Session-ID eingeben",
-    "only-numbers": "Eine Session-ID besteht aus einer Kombination aus 8 Ziffern.",
-    "exactly-8": "Eine Session-ID hat genau 8 Ziffern."
+  "answer": {
+    "abstain": "Enthalten",
+    "abstention-sent": "Enthaltung gesendet",
+    "at-least-one": "Bitte wähle mindestens eine Antwort.",
+    "please-answer": "Bitte gib eine Antwort ein.",
+    "please-one": "Bitte wähle eine Antwort.",
+    "sent": "Antwort gesendet",
+    "submit": "Absenden",
+    "your-answer": "Deine Antwort"
   },
-  "room-page": {
-    "comments": "Fragen",
-    "learn": "Lernen",
-    "create-comment": "Stell deine Frage!",
-    "give-feedback": "Feedback geben",
-    "live-feedback": "Live Feedback",
-    "answer-statistics": "Statistiken",
-    "default-content-group": "Standard",
-    "description": "Beschreibung der Session",
-    "session-id": "ID"
+  "comment-list": {
+    "a11y-access_time": "Sortiert Fragen nach der Uhrzeit",
+    "a11y-add": "Option eine Frage zu stellen",
+    "a11y-pause": "Stoppt den Fragen-Stream",
+    "a11y-play": "Startet den Fragen-Stream",
+    "a11y-beamer_icon": "Filtert alle besprochenen Fragen",
+    "a11y-check_circle": "Filtert alle bejahten Fragen",
+    "a11y-close": "Hebt alle Filter auf",
+    "a11y-close_search": "Schließt den Suchvorgang von Fragen",
+    "a11y-filter_list": "Option Fragen zu filtern",
+    "a11y-grade": "Filtert alle Bonus Fragen",
+    "a11y-keyboard_arrow_down": "Sortiert die Fragen nach absteigenden Bewertungen",
+    "a11y-keyboard_arrow_up": "Sortiert die Fragen nach aufsteigenden Bewertungen",
+    "a11y-not_interested": "Filtert alle verneinten Fragen",
+    "a11y-search_box": "Gib die gewünschte Frage ein",
+    "a11y-swap_vert": "Option Fragen zu sortieren",
+    "add-comment": "Stell deine Frage!",
+    "pause-comments": "Pausiere den Fragen-Stream",
+    "play-comments": "Starte den Fragen-Stream",
+    "comment-stream-stopped": "Der Fragen-Stream wurde gestoppt.",
+    "comment-stream-started": "Der Fragen-Stream wurde gestartet.",
+    "comment-sent": "Die Frage wurde veröffentlicht.",
+    "comment-sent-to-moderator": "Die Frage wird nun von einem Moderator überprüft.",
+    "comment-deleted": "Die Frage wurde gelöscht.",
+    "correct": "Bejaht",
+    "favorite": "Bonus-Frage",
+    "filter-comments": "Fragen filtern",
+    "filter-correct": "Bejahte Fragen",
+    "filter-favorite": "Bonus-prämierte Fragen",
+    "filter-read": "Besprochene Fragen",
+    "filter-reset": "Zurücksetzen",
+    "filter-wrong": "Verneinte Fragen",
+    "read": "Im Hörsaal besprochen",
+    "search": "Suchen",
+    "sort-comments": "Fragen sortieren",
+    "sort-vote-asc": "Positivste Bewertung zuerst",
+    "sort-vote-desc": "Negativste Bewertung zuerst",
+    "sort-list-time": "Neueste Frage zuerst",
+    "time": "Zeit",
+    "unread": "Nicht im Hörsaal besprochen",
+    "vote-asc": "Aufsteigende Bewertungen",
+    "vote-desc": "Absteigende Bewertungen",
+    "wrong": "Verneint"
   },
   "comment-page": {
-    "enter-title": "Titel",
-    "enter-comment": "Deine Frage",
-    "send": "Senden",
+    "a11y-comment_input": "Gib deine Frage ein",
+    "a11y-comment_vote_down": "Diese Frage abwerten",
+    "a11y-comment_vote_up": "Diese Frage aufwerten",
+    "a11y-text_correct": "Diese Frage wurde bejaht.",
+    "a11y-text_grade": "Diese Frage wurde als Bonus Frage markiert.",
+    "a11y-text_read": "Diese Frage wurde in der Vollansicht am Beamer besprochen.",
+    "a11y-text_textForOneVote": "Eine Bewertung",
+    "a11y-text_textForVotes": "Bewertungen",
+    "a11y-text_wrong": "Diese Frage wurde verneint.",
     "abort": "Abbrechen",
+    "ask-question-description": "Gib hier deine Frage ein!",
+    "cancel": "Abbrechen",
+    "cancel-description": "Abbrechen",
+    "comment": "Die Frage {{ comment }} wurde um {{ time }} Uhr gestellt und hat derzeitig {{ votes }}. {{correct}} {{wrong}} {{bonus}} {{beamer}}",
+    "enter-comment": "Deine Frage",
+    "enter-title": "Titel",
+    "error-both-fields": "Bitte fülle alle Felder aus.",
     "error-comment": "Bitte gib deine Frage ein.",
     "error-title": "Bitte gib einen Titel ein.",
-    "error-both-fields": "Bitte fülle alle Felder aus.",
+    "exit-description": "Präsentationsmodus verlassen",
+    "live-announcer": "Du befindest dich jetzt auf der Fragen-Seite. Um Informationen zu Tastenkombinationen zu erhalten drücke jetzt die Enter-Taste oder rufe die Ansage zu einem späteren Zeitpunkt mit der Escape-Taste auf.",
+    "mark-not-correct": "Dozent hat die Frage bejaht.",
+    "mark-not-favorite": "Bonus-Frage: Dozent hält die Frage für besonders interessant.",
+    "mark-not-wrong": "Dozent hat die Frage verneint",
+    "mark-read": "Dozent hat die Frage im Hörsaal besprochen.",
+    "new-comment": "Eine neue Frage mit dem Inhalt, {{ comment }}, wurde soeben gestellt.",
     "no-comments": "",
-    "mark-not-correct": "Dozent/in hat die Frage bejaht.",
-    "mark-not-wrong": "Dozent/in hat die Frage verneint",
-    "mark-not-favorite": "Bonus-Frage: Dozent/in hält die Frage für besonders interessant.",
-    "mark-read": "Dozent/in hat die Frage im Hörsaal besprochen.",
-    "vote-up": "Hochvoten",
-    "vote-down": "Runtervoten"
+    "search-box-input-description": "Hier kannst du nach Fragen suchen.",
+    "send": "Senden",
+    "send-description": "Frage abschicken",
+    "vote-down": "Frage abwerten",
+    "vote-up": "Frage aufwerten"
   },
-  "comment-list": {
-    "search": "Suchen",
-    "filter-comments": "Fragen filtern",
-    "sort-comments": "Fragen sortieren",
-    "add-comment": "Stell deine Frage!",
-    "wrong": "Verneint",
-    "correct": "Bejaht",
-    "favorite": "Bonus-Frage",
-    "read": "Im Hörsaal besprochen",
-    "unread": "Nicht im Hörsaal besprochen",
-    "vote-desc": "Absteigende Votes",
-    "vote-asc": "Aufsteigende Votes",
-    "time": "Zeit",
-    "comment-sent": "Die Frage wurde veröffentlicht.",
-    "comment-sent-to-moderator": "Die Frage wird nun von einem Moderator überprüft."
+
+  "home-page": {
+    "exactly-8": "Ein Sitzungs-Code hat genau 8 Ziffern.",
+    "no-room-found": "Es wurde keine Sitzung mit diesem Sitzungs-Code gefunden.",
+    "only-numbers": "Ein Sitzungs-Code besteht aus einer Kombination aus 8 Ziffern.",
+    "please-enter": "Bitte Sitzungs-Code eingeben."
   },
-  "answer": {
-    "submit": "Absenden",
-    "abstain": "Enthalten",
-    "sent": "Antwort gesendet",
-    "abstention-sent": "Enthaltung gesendet",
-    "your-answer": "Ihre Antwort",
-    "at-least-one": "Bitte wähle mindestens eine Antwort.",
-    "please-one": "Bitte wähle eine Antwort.",
-    "please-answer": "Bitte gib eine Antwort ein."
+  "room-page": {
+    "a11y-announcer": "Du befindest dich nun in der Sitzung mit dem von dir eingegebenen Sitzungs-Code.",
+    "a11y-question_answer": "Öffnet die Fragen-Seite und bietet dir die Möglichkeit, Fragen zu stellen.",
+    "answer-statistics": "Statistiken",
+    "comments": "Fragen",
+    "create-comment": "Stell deine Frage!",
+    "default-content-group": "Standard",
+    "description": "Beschreibung der Sitzung",
+    "give-feedback": "Feedback geben",
+    "learn": "Lernen",
+    "live-announcer": "Du befindest dich jetzt in der Sitzung. Um Informationen zu Tastenkombinationen zu erhalten drücke jetzt die Enter-Taste oder rufe die Ansage zu einem späteren Zeitpunkt mit der Escape-Taste auf.",
+    "live-feedback": "Live Feedback",
+    "session-id": "Code"
   },
   "statistic": {
-    "content": "Frage",
+    "abstentions": "Enthaltungen",
     "answer-statistic": "Antwortstatistik",
     "answers": "Antworten",
-    "percentage": "Prozent",
-    "abstentions": "Enthaltungen",
-    "no-questions": "Es sind noch keine Antworten vorhanden.",
+    "content": "Frage",
     "good": "Gut",
     "improvable": "Luft nach oben",
-    "no-answers": "Keine Antworten"
+    "no-answers": "Keine Antworten",
+    "no-questions": "Es sind noch keine Antworten vorhanden.",
+    "percentage": "Prozent"
   }
 }
diff --git a/src/assets/i18n/participant/en.json b/src/assets/i18n/participant/en.json
index 896c911ea55d75feb5d96ea8173ddda36faf28f4..8a6d77a42de721b310e6144bfa1fcd96c5da4e75 100644
--- a/src/assets/i18n/participant/en.json
+++ b/src/assets/i18n/participant/en.json
@@ -1,73 +1,121 @@
 {
-  "home-page": {
-    "no-room-found": "No session found with this ID",
-    "please-enter": "Please enter a session ID",
-    "only-numbers": "A session ID is a combination of 8 digits.",
-    "exactly-8": "A session ID is a combination of exactly 8 digits."
-  },
-  "room-page": {
-    "comments": "Questions",
-    "learn": "Learn",
-    "create-comment": "Ask a question!",
-    "give-feedback": "Give feedback",
-    "live-feedback": "Live feedback",
-    "answer-statistics": "Statistics",
-    "default-content-group": "Default",
-    "description": "Description",
-    "session-id": "ID"
-  },
-  "comment-page": {
-    "enter-title": "Title",
-    "enter-comment": "Your question",
-    "send": "Send",
-    "abort": "Cancel",
-    "error-title": "Please enter a title.",
-    "error-comment": "Please enter a question.",
-    "error-both-fields": "Please fill in all fields.",
-    "no-comments": "No questions yet",
-    "mark-not-correct": "Marked as correct by the professor",
-    "mark-not-wrong": "Marked as wrong by the professor",
-    "mark-not-favorite": "Bonus question: Your professor intends to give a bonus for that question.",
-    "mark-read": "Already discussed by the professor",
-    "vote-up": "Vote up",
-    "vote-down": "Vote down"
+  "answer": {
+    "abstain": "Abstain",
+    "abstention-sent": "Abstention sent",
+    "at-least-one": "Please select at least one answer.",
+    "please-answer": "Please enter an answer.",
+    "please-one": "Please select an answer.",
+    "sent": "Answer sent",
+    "submit": "Submit",
+    "your-answer": "Your answer"
   },
   "comment-list": {
-    "search": "Search",
-    "filter-comments": "Filter questions",
-    "sort-comments": "Sort questions",
+    "a11y-access_time": "Sorts questions by time",
+    "a11y-add": "Option to ask a question",
+    "a11y-pause": "Stops question stream",
+    "a11y-play": "Starts question stream",
+    "a11y-beamer_icon": "Filters all discussed questions",
+    "a11y-check_circle": "Filters all questions marked as correct",
+    "a11y-close": "Picks up all filters",
+    "a11y-close_search": "Closes the search of questions",
+    "a11y-filter_list": "Option to filter questions",
+    "a11y-grade": "Filters all bonus questions",
+    "a11y-keyboard_arrow_down": "Sorts questions by descending votes",
+    "a11y-keyboard_arrow_up": "Sorts questions by ascending votes",
+    "a11y-not_interested": "Filters all questions marked as wrong",
+    "a11y-search_box": "Enter the desired question",
+    "a11y-swap_vert": "Option to sort questions",
     "add-comment": "Ask a question!",
-    "wrong": "Marked as wrong by the professor",
+    "pause-comments": "Pause the question stream",
+    "play-comments": "Start the question stream",
+    "comment-stream-stopped": "Question stream has been stopped.",
+    "comment-stream-started": "Question stream has been started.",
+    "comment-sent": "The question has been published.",
+    "comment-sent-to-moderator": "The question will be reviewed by a moderator.",
+    "comment-deleted": "The question has been deleted.",
     "correct": "Marked as correct by the professor",
     "favorite": "Bonus question",
+    "filter-comments": "Filter questions",
+    "filter-correct": "Affirmed questions",
+    "filter-favorite": "Questions awarded a bonus",
+    "filter-read": "Questions discussed",
+    "filter-reset": "Reset",
+    "filter-wrong": "Negated questions",
     "read": "Discussed by the professor",
+    "search": "Search",
+    "sort-comments": "Sort questions",
+    "sort-vote-asc": "Best rating first",
+    "sort-vote-desc": "Worst rating first",
+    "sort-list-time": "Latest question first",
+    "time": "Time",
     "unread": "Not yet discussed",
     "vote-desc": "Descending votes",
     "vote-asc": "Ascending votes",
-    "time": "Time",
-    "comment-sent": "The question has been published.",
-    "comment-sent-to-moderator": "The question will be reviewed by a moderator."
-
+    "wrong": "Marked as wrong by the professor"
   },
-  "answer": {
-    "submit": "Submit",
-    "abstain": "Abstain",
-    "sent": "Answer sent",
-    "abstention-sent": "Abstention sent",
-    "your-answer": "Your answer",
-    "at-least-one": "Please select at least one answer.",
-    "please-one": "Please select an answer.",
-    "please-answer": "Please enter an answer."
+  "comment-page": {
+    "a11y-comment_input": "Enter your question",
+    "a11y-comment_vote_down": "Votes down this question",
+    "a11y-comment_vote_up": "Votes up this question",
+    "a11y-text_correct": "This question was marked as correct.",
+    "a11y-text_grade": "This question was marked as a bonus question.",
+    "a11y-text_read": "This question was discussed in full view on the beamer",
+    "a11y-text_textForOneVote": "One ,Vote",
+    "a11y-text_textForVotes": ",Votes",
+    "a11y-text_wrong": "This question was marked as not correct.",
+    "abort": "Cancel",
+    "ask-question-description": "Enter your question here!",
+    "cancel": "Cancel",
+    "cancel-description": "Cancel",
+    "comment": "Question {{ comment }} was asked at {{ time }} and has currently {{ votes }}. {{correct}} {{wrong}} {{bonus}} {{beamer}}",
+    "enter-comment": "Your question",
+    "enter-title": "Title",
+    "error-both-fields": "Please fill in all fields.",
+    "error-comment": "Please enter a question.",
+    "error-title": "Please enter a title.",
+    "exit-description": "Exit Presentation Mode",
+    "live-announcer": "You are now on the questions page. To get information about key combinations press the Enter key or call the announcement later with the Escape key.",
+    "mark-not-correct": "Marked as correct by the professor",
+    "mark-not-favorite": "Bonus question: Your professor intends to give a bonus for that question.",
+    "mark-not-wrong": "Marked as wrong by the professor",
+    "mark-read": "Already discussed by the professor",
+    "new-comment": "A new question with the content, {{ comment }}, has been asked.",
+    "no-comments": "No questions present",
+    "search-box-input-description": "Here you can search for questions.",
+    "send": "Send",
+    "send-description": "Send question",
+    "vote-down": "Vote down",
+    "vote-up": "Vote up"
+  },
+  "home-page": {
+    "exactly-8": "A session key is a combination of exactly 8 digits.",
+    "no-room-found": "No session found with this key",
+    "only-numbers": "A session key is a combination of 8 digits.",
+    "please-enter": "Please enter a session key"
+  },
+  "room-page": {
+    "a11y-announcer": "You are now in the session with the key you entered.",
+    "a11y-question_answer": "Opens the page where you can ask questions and vote up or down other questions.",
+    "answer-statistics": "Statistics",
+    "comments": "Questions",
+    "create-comment": "Ask a question!",
+    "default-content-group": "Default",
+    "description": "Description",
+    "give-feedback": "Give feedback",
+    "learn": "Learn",
+    "live-announcer": "You're in the session now. To get information about key combinations press the Enter key or call the announcement later with the Escape key.",
+    "live-feedback": "Live feedback",
+    "session-id": "Key"
   },
   "statistic": {
-    "content": "Content",
+    "abstentions": "Abstentions",
     "answer-statistic": "Answer statistics",
     "answers": "Answers",
-    "percentage": "Percentage",
-    "abstentions": "Abstentions",
-    "no-questions": "There are no answers yet.",
+    "content": "Content",
     "good": "Good",
     "improvable": "Improvable",
-    "no-answers": "No answers"
+    "no-answers": "No answers",
+    "no-questions": "There are no answers yet.",
+    "percentage": "Percentage"
   }
 }
diff --git a/src/assets/icons/beamer-icon.svg b/src/assets/icons/beamer.svg
similarity index 100%
rename from src/assets/icons/beamer-icon.svg
rename to src/assets/icons/beamer.svg
diff --git a/src/assets/icons/meeting_room.svg b/src/assets/icons/meeting_room.svg
new file mode 100644
index 0000000000000000000000000000000000000000..1a4e279bfde625e885b40c97a24ffdd01b09099e
--- /dev/null
+++ b/src/assets/icons/meeting_room.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M14 6v15H3v-2h2V3h9v1h5v15h2v2h-4V6h-3zm-4 5v2h2v-2h-2z"/></svg>
\ No newline at end of file
diff --git a/src/assets/icons/site.webmanifest b/src/assets/icons/site.webmanifest
index 4c962af3a6d9642923e940cc6768564bb7592e15..1bc880faca42025bc774eeb0e923b6764bad1399 100644
--- a/src/assets/icons/site.webmanifest
+++ b/src/assets/icons/site.webmanifest
@@ -14,10 +14,9 @@
             "type": "image/png"
         }
     ],
-    "theme_color": "#03dac6",
+    "theme_color": "#000000",
     "background_color": "#03dac6",
     "scope": "/",
     "start_url": "/home",
-    "orientation": "portrait",
     "display": "standalone"
 }
diff --git a/src/index.html b/src/index.html
index c718ea9117d40099e6caff66aa23e53742919d22..4a36156691b4040107a7a6e22983728c808a073b 100644
--- a/src/index.html
+++ b/src/index.html
@@ -22,7 +22,7 @@
   <meta content="frag.jetzt" name="application-name">
   <meta content="#00aba9" name="msapplication-TileColor">
   <meta content="/assets/icons/browserconfig.xml?v=00zWdx8zdl" name="msapplication-config">
-  <meta content="#03dac6" name="theme-color">
+  <meta content="#000000" name="theme-color">
 
   <!-- Add to homescreen for Chrome on Android -->
   <meta content="yes" name="mobile-web-app-capable">
diff --git a/src/styles.scss b/src/styles.scss
index c9f9555298a9d5fd4883600fa21401f263be0c8e..350780ad95c932f7db0a4516421df772b0dd1f3f 100644
--- a/src/styles.scss
+++ b/src/styles.scss
@@ -1,4 +1,4 @@
-@import 'theme/default-theme/_variables.scss';
+@import 'theme/light-theme/_variables.scss';
 @import 'theme/dark-theme/dark-theme';
 @import 'theme/blue-theme/blue-theme';
 @import 'theme/purple-theme/purple-theme';
@@ -14,6 +14,19 @@
 // that you are using.
 @include angular-material-theme($arsnova-theme);
 
+::-webkit-scrollbar{
+  width:2px;
+  background-color:var(--on-secondary);
+}
+
+::-webkit-scrollbar:hover{
+  width:10px;
+}
+
+::-webkit-scrollbar-thumb{
+  background-color:var(--secondary);
+  border-radius:5px;
+}
 
 .dark {
   @include angular-material-theme($dark-theme);
@@ -27,4 +40,25 @@
   @include angular-material-theme($purple-theme);
 }
 
-@import 'theme/default-theme/theme';
+@import 'theme/light-theme/theme';
+
+.visually-hidden {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  overflow: hidden;
+  left: -10000px;
+}
+
+.modal {
+  outline: none;
+  border-color: transparent;
+}
+
+.placeholder {
+  color: var(--on-surface);
+}
+
+
+
+
diff --git a/src/theme/Theme.ts b/src/theme/Theme.ts
new file mode 100644
index 0000000000000000000000000000000000000000..11fb28b71f6811eab6b95413f9c36c956cb99ccc
--- /dev/null
+++ b/src/theme/Theme.ts
@@ -0,0 +1,186 @@
+
+
+export class ColorElem {
+
+  public on: ColorElem;
+  public variant: ColorElem;
+
+  constructor(
+    public name: string,
+    public attr: string,
+    public color: string
+  ) {}
+
+}
+
+export class ThemeTranslationList {
+
+  map: string[][] = [];
+
+  constructor(private name, translation: Object) {
+    for (const k in translation) {
+      if (translation.hasOwnProperty(k)) {
+        this.map.push([k, translation[k]]);
+      }
+    }
+  }
+
+  public get(language: string) {
+    for (let i = 0; i < this.map.length; i++) {
+      if (this.map[i][0] === language) {return this.map[i][1]; }
+    }
+    console.error('ThemeTranslationList: Translation Error, Unknown Language: ' + language);
+    return 'unknown';
+  }
+
+}
+
+export class Theme {
+
+  /**
+   * Colors with on-color
+   * Example:
+   * primary -> '--primary' and '--on-primary'
+   */
+  public static mainColors: string[] = [
+    'primary',
+    'secondary',
+    'background',
+    'surface'
+  ];
+
+  /**
+   * Colors with variant-color
+   * Example:
+   * primary -> '--primary' and 'primary-variant'
+   */
+  public static variantColors: string[] = [
+    'primary',
+    'secondary'
+  ];
+
+  /**
+   * All Colors
+   */
+  public colors: ColorElem[];
+
+  /**
+   * All Colors from Theme.mainColors
+   */
+  public main: ColorElem[];
+
+  /**
+   * order:
+   * used for Array.sort, for correct display of Themes
+   */
+  public order: number;
+
+  /**
+   * name:
+   * name of Theme
+   */
+  public name: ThemeTranslationList;
+
+  /**
+   * description:
+   * description of Theme
+   */
+  public description: ThemeTranslationList;
+
+  /**
+   * previewColor:
+   * used for Color-Icon in Footer
+   */
+  public previewColor: ColorElem;
+
+  /**
+   * scale:
+   * Used for Initial Rescale value,
+   * when Theme is loaded
+   */
+  public scale: number;
+
+  constructor(
+    public key: string,
+    public palette: Object,
+    public meta: Object
+  ) {
+
+    /*Init order*/
+    this.order = meta['order'];
+
+    /*Init name*/
+    this.name = new ThemeTranslationList(
+      'name', this.meta['translation']['name']
+    );
+
+    /*Init description*/
+    this.description = new ThemeTranslationList(
+      'description', this.meta['translation']['description']
+    );
+
+    /*Init scale*/
+    this.scale = this.meta['scale'];
+
+    /*Init all ColorElem*/
+
+    this.colors = [];
+    this.main = [];
+    for (const k in palette) {
+      if (palette.hasOwnProperty(k)) {
+        if (k !== 'name') {
+          this.colors.push(new ColorElem(
+            k.slice(2, k.length),
+            k,
+            palette[k]
+          ));
+        }
+      }
+    }
+
+    Theme.mainColors.forEach(e => {
+      this.get(e).on = this.get('on-' + e);
+      this.main.push(this.get(e));
+    });
+
+    Theme.variantColors.forEach(e => {
+      this.get(e).variant = this.get(e + '-variant');
+    });
+    this.previewColor = this.get(this.meta['previewColor']);
+  }
+
+  public get(name: string): ColorElem {
+    for (let i = 0; i < this.colors.length; i++) {
+      if (this.colors[i].name === name) {return this.colors[i]; }
+    }
+    return null;
+  }
+
+  public getName(language: string): string {
+    return this.name.get(language);
+  }
+
+  public getDescription(language: string): string {
+    return this.description.get(language);
+  }
+
+  public getPreviewColor(): string {
+    return this.previewColor.color;
+  }
+
+  public getOnPreviewColor(): string {
+    return this.previewColor.on.color;
+  }
+
+  public toString(language: string): string {
+    if (typeof language === 'undefined') {return 'waiting for language (currentLang)'; }
+    return this.name.get(language) + ' - ' + this.description.get(language);
+  }
+}
+
+
+
+
+
+
+
diff --git a/src/theme/arsnova-theme.const.ts b/src/theme/arsnova-theme.const.ts
index fa6e71583d5087e3b069944ef5a0d39cd699f30b..c765fd37dd3627bdcb9f9353d32d3d99874f7465 100644
--- a/src/theme/arsnova-theme.const.ts
+++ b/src/theme/arsnova-theme.const.ts
@@ -1,11 +1,19 @@
-import { dark } from './dark-theme/darkTheme.const';
-import { arsnova } from './default-theme/defaultTheme.const';
+import { dark, dark_meta } from './dark-theme/darkTheme.const';
+import { arsnova, arsnova_meta } from './light-theme/light-theme';
 import { blue } from './blue-theme/blueTheme.const';
-import { purple } from './purple-theme/purpleTheme.const';
+import { purple, purple_meta } from './purple-theme/purpleTheme.const';
+import { highcontrast, highcontrast_meta } from './high-contrast-theme/highContrastTheme.const';
 
 export const themes = {
   arsnova: arsnova,
   dark: dark,
-  blue: blue,
-  purple: purple
+  projector: purple,
+  highcontrast: highcontrast
+};
+
+export const themes_meta = {
+  arsnova: arsnova_meta,
+  dark: dark_meta,
+  projector: purple_meta,
+  highcontrast: highcontrast_meta
 };
diff --git a/src/theme/blue-theme/blueTheme.const.ts b/src/theme/blue-theme/blueTheme.const.ts
index b6bbcc6550bdeefb03c8b68723ee957269824092..bee8512754d6f09f31c772deda1a07fd530c4c5f 100644
--- a/src/theme/blue-theme/blueTheme.const.ts
+++ b/src/theme/blue-theme/blueTheme.const.ts
@@ -9,11 +9,13 @@ export const blue = {
   '--background': '#fafafa',
   '--surface': '#e0e0e0',
   '--dialog': '#f2f4f5',
+  '--cancel': '#9E9E9E',
 
   '--on-primary': '#FFFFFF',
   '--on-secondary': '#000000',
   '--on-background': '#000000',
   '--on-surface': '#000000',
+  '--on-cancel': '#000000',
 
   '--green': '#4caf50',
   '--red': '#f44336',
@@ -25,3 +27,21 @@ export const blue = {
   '--grey-light': '#EEEEEE',
   '--black': '#212121'
 };
+
+export const blue_meta = {
+
+  'translation': {
+    'name': {
+      'en': 'ENGLISH_NAME',
+      'de': 'GERMAN_NAME'
+    },
+    'description': {
+      'en': 'ENGLISH_DESCRIPTION',
+      'de': 'GERMAN_DESCRIPTION'
+    }
+  },
+  'order': 4,
+  'scale': 1,
+  'previewColor': 'background'
+
+};
diff --git a/src/theme/dark-theme/_dark-theme.scss b/src/theme/dark-theme/_dark-theme.scss
index 4c901c3618b44e49db134b2200844ec0f3e4c34b..69f82834671df1e6be36c0d3cfd5ffbcae204ff5 100644
--- a/src/theme/dark-theme/_dark-theme.scss
+++ b/src/theme/dark-theme/_dark-theme.scss
@@ -6,3 +6,13 @@ $dark-warn: mat-palette($mat-red, A200);
 
 $dark-theme: mat-dark-theme($dark-primary, $dark-accent, $dark-warn);
 
+a {
+  text-decoration: underline;
+  color: var(--on-surface);
+}
+
+img {
+  padding: 15px;
+  background-color: white;
+}
+
diff --git a/src/theme/dark-theme/darkTheme.const.ts b/src/theme/dark-theme/darkTheme.const.ts
index 1f0e836897e5abda5ba718465e1a46272289bf9e..bb7e60c01db9db9f89b2c2c135bc2949866b9f4f 100644
--- a/src/theme/dark-theme/darkTheme.const.ts
+++ b/src/theme/dark-theme/darkTheme.const.ts
@@ -9,15 +9,17 @@ export const dark = {
   '--background': '#121212',
   '--surface': '#212121',
   '--dialog': '#37474f',
+  '--cancel': '#26343c',
 
   '--on-primary': '#000000',
   '--on-secondary': '#000000',
   '--on-background': '#FFFFFF',
   '--on-surface': '#FFFFFF',
+  '--on-cancel': '#FFFFFF',
 
-  '--green': '#4caf50',
-  '--red': '#f44336',
-  '--yellow': '#FFD54F',
+  '--green': 'lightgreen',
+  '--red': 'red',
+  '--yellow': 'yellow',
   '--blue': '#3f51b5',
   '--purple': '#9c27b0',
   '--light-green': '#80ba24',
@@ -25,3 +27,21 @@ export const dark = {
   '--grey-light': '#9E9E9E',
   '--black': '#212121'
 };
+
+export const dark_meta = {
+
+  'translation': {
+    'name': {
+      'en': 'Dark Mode',
+      'de': 'Dark Mode'
+    },
+    'description': {
+      'en': 'Dark, battery-saving background',
+      'de': 'Dunkler akkuschonender Hintergrund'
+    }
+  },
+  'order': 3,
+  'scale': 1,
+  'previewColor': 'background'
+
+};
diff --git a/src/theme/default-theme/defaultTheme.const.ts b/src/theme/default-theme/defaultTheme.const.ts
deleted file mode 100644
index 73bfc7670b596b2b2b1f2ff6ee50942927006247..0000000000000000000000000000000000000000
--- a/src/theme/default-theme/defaultTheme.const.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-export const arsnova = {
-
-  '--primary' : '#80ba24',
-  '--primary-variant': '#dfeec8',
-
-  '--secondary': '#4a5c66',
-  '--secondary-variant': '#4a5d66',
-
-  '--background': '#fafafa',
-  '--surface': '#e0e0e0',
-  '--dialog': '#f2f4f5',
-
-  '--on-primary': '#000000',
-  '--on-secondary': '#ffffff',
-  '--on-background': '#000000',
-  '--on-surface': '#000000',
-
-  '--green': '#4caf50',
-  '--red': '#f44336',
-  '--yellow': '#f5aa01',
-  '--blue': '#002878',
-  '--purple': '#9c27b0',
-  '--light-green': '#80ba24',
-  '--grey': '#BDBDBD',
-  '--grey-light': '#EEEEEE',
-  '--black': '#212121'
-};
diff --git a/src/theme/high-contrast-theme/_high-contrast-theme.scss b/src/theme/high-contrast-theme/_high-contrast-theme.scss
new file mode 100644
index 0000000000000000000000000000000000000000..a25393f1ae90fddaedc17cb71bdae3921e50209a
--- /dev/null
+++ b/src/theme/high-contrast-theme/_high-contrast-theme.scss
@@ -0,0 +1,8 @@
+@import './../../../node_modules/@angular/material/theming';
+
+$purple-primary: mat-palette($mat-purple,500);
+$purple-accent: mat-palette($mat-amber, 200); //$mat-purple-gray, A200, A100, A400);
+
+$purple-warn: mat-palette($mat-red, A100);
+
+$purple-theme: mat-light-theme($purple-primary, $purple-accent, $purple-warn);
diff --git a/src/theme/high-contrast-theme/highContrastTheme.const.ts b/src/theme/high-contrast-theme/highContrastTheme.const.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4c46d7a3074fe59ff4358e685b712e3bb3f412bd
--- /dev/null
+++ b/src/theme/high-contrast-theme/highContrastTheme.const.ts
@@ -0,0 +1,64 @@
+export const highcontrast = {
+
+  '--primary' : '#fb9a1c',
+  '--primary-variant': '#1e1e1e',
+
+  '--secondary': '#fb9a1c',
+  '--secondary-variant': '#fb9a1c',
+
+  '--background': '#141414',
+  '--surface': '#1e1e1e',
+  '--dialog': '#37474f',
+
+  '--on-primary': '#141414',
+  '--on-secondary': '#141414',
+  '--on-background': '#FFFFFF',
+  '--on-surface': '#FFFFFF',
+
+  '--green': 'lightgreen',
+  '--red': 'red',
+  '--yellow': 'yellow',
+  '--blue': 'blue',
+  '--purple': 'purple',
+  '--light-green': 'lightgreen',
+  '--grey': 'grey',
+  '--grey-light': 'lightgrey',
+  '--black': 'black'
+
+};
+
+export const highcontrast_meta = {
+
+  'translation': {
+    'name': {
+      'en': 'High Contrast',
+      'de': 'Hoher Kontrast'
+    },
+    'description': {
+      'en': 'Contrast compliant with WCAG 2.1 AA',
+      'de': 'Helligkeitskontrast nach WCAG 2.1 AA'
+    }
+  },
+  'order': 0,
+  'scale': 1,
+  'previewColor': 'secondary'
+
+};
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/theme/default-theme/_form.scss b/src/theme/light-theme/_form.scss
similarity index 85%
rename from src/theme/default-theme/_form.scss
rename to src/theme/light-theme/_form.scss
index f45151dbb865ea6addda90c33512296ede7aab4c..431f10e2dfa1b419331efbce9ffd9b629530cf05 100644
--- a/src/theme/default-theme/_form.scss
+++ b/src/theme/light-theme/_form.scss
@@ -20,8 +20,8 @@ mat-form-field.input-block {
 }
 
 .snackbar button {
-  background-color: var(--on-secondary);
-  color: var(--on-surface);
+  background-color: var(--primary);
+  color: white !important;
 }
 
 .mat-input-element {
diff --git a/src/theme/default-theme/_theme.scss b/src/theme/light-theme/_theme.scss
similarity index 100%
rename from src/theme/default-theme/_theme.scss
rename to src/theme/light-theme/_theme.scss
diff --git a/src/theme/default-theme/_util.scss b/src/theme/light-theme/_util.scss
similarity index 100%
rename from src/theme/default-theme/_util.scss
rename to src/theme/light-theme/_util.scss
diff --git a/src/theme/default-theme/_variables.scss b/src/theme/light-theme/_variables.scss
similarity index 100%
rename from src/theme/default-theme/_variables.scss
rename to src/theme/light-theme/_variables.scss
diff --git a/src/theme/light-theme/light-theme.ts b/src/theme/light-theme/light-theme.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7f1859e2d287a39dafa24970565ec38a0ae3f300
--- /dev/null
+++ b/src/theme/light-theme/light-theme.ts
@@ -0,0 +1,47 @@
+export const arsnova = {
+
+  '--primary' : '#263238',
+  '--primary-variant': '#c0d6e4',
+
+  '--secondary': '#FF6D00',
+  '--secondary-variant': '#619790',
+
+  '--background': '#e3eaa7',
+  '--surface': '#81C784',
+  '--dialog': '#e3eaa7',
+  '--cancel': '#BDBDBD',
+
+  '--on-primary': '#ffffff',
+  '--on-secondary': '#000000',
+  '--on-background': '#000000',
+  '--on-surface': '#000000',
+  '--on-cancel': '#000000',
+
+  '--green': 'green',
+  '--red': 'red',
+  '--yellow': 'yellow',
+  '--blue': '#002878',
+  '--purple': '#9c27b0',
+  '--light-green': '#80ba24',
+  '--grey': '#BDBDBD',
+  '--grey-light': '#EEEEEE',
+  '--black': 'black'
+};
+
+export const arsnova_meta = {
+
+  'translation': {
+    'name': {
+      'en': 'Light Mode',
+      'de': 'Light Mode'
+    },
+    'description': {
+      'en': 'Bright background for focussed working',
+      'de': 'Heller Hintergrund für fokussiertes Arbeiten'
+    }
+  },
+  'order': 2,
+  'scale': 1,
+  'previewColor': 'background'
+
+};
diff --git a/src/theme/purple-theme/purpleTheme.const.ts b/src/theme/purple-theme/purpleTheme.const.ts
index 8a120ab88a92c9158c5f863135efb6b5cea45fcb..f8739a944b72daa31079e8e9677460582777b315 100644
--- a/src/theme/purple-theme/purpleTheme.const.ts
+++ b/src/theme/purple-theme/purpleTheme.const.ts
@@ -1,27 +1,46 @@
 export const purple = {
 
-  '--primary' : '#9c27b0',
-  '--primary-variant': '#d05ce3',
-
-  '--secondary': '#ffca28',
-  '--secondary-variant': '#fffd61',
-
-  '--background': '#fafafa',
-  '--surface': '#e0e0e0',
-  '--dialog': '#f2f4f5',
-
-  '--on-primary': '#FFFFFF',
-  '--on-secondary': '#000000',
-  '--on-background': '#000000',
-  '--on-surface': '#000000',
-
-  '--green': '#4caf50',
-  '--red': '#f44336',
-  '--yellow': '#FFD54F',
-  '--blue': '#3f51b5',
-  '--purple': '#9c27b0',
-  '--light-green': '#80ba24',
-  '--grey': '#BDBDBD',
-  '--grey-light': '#EEEEEE',
-  '--black': '#212121'
+  '--primary' : 'Maroon',
+  '--primary-variant': 'white',
+
+  '--secondary': 'black',
+  '--secondary-variant': 'green',
+
+  '--background': 'beige',
+  '--surface': 'white',
+  '--dialog': 'white',
+
+  '--on-primary': 'white',
+  '--on-secondary': 'white',
+  '--on-background': 'black',
+  '--on-surface': 'black',
+  '--on-cancel': 'white',
+
+  '--green': 'green',
+  '--red': 'red',
+  '--yellow': 'gold',
+  '--blue': 'blue',
+  '--purple': 'purple',
+  '--light-green': 'lightgreen',
+  '--grey': 'grey',
+  '--grey-light': 'lightgrey',
+  '--black': 'black'
+};
+
+export const purple_meta = {
+
+  'translation': {
+    'name': {
+      'en': 'Projector',
+      'de': 'Beamer'
+    },
+    'description': {
+      'en': 'Optimized for presentation in lecture halls',
+      'de': 'Für die Präsentation im Hörsaal optimiert'
+    }
+  },
+  'order': 1,
+  'scale': 1.3,
+  'previewColor': 'background'
+
 };
diff --git a/src/theme/theme.service.ts b/src/theme/theme.service.ts
index cb045b6ea6a404e8589504496ffd6b1b0b242755..697d7de66cc800eb8360338f962ba2df8d85f246 100644
--- a/src/theme/theme.service.ts
+++ b/src/theme/theme.service.ts
@@ -1,5 +1,7 @@
 import { Injectable } from '@angular/core';
 import { BehaviorSubject } from 'rxjs';
+import { themes, themes_meta } from './arsnova-theme.const';
+import { Theme, ThemeTranslationList } from './Theme';
 
 @Injectable({
   providedIn: 'root'
@@ -7,8 +9,22 @@ import { BehaviorSubject } from 'rxjs';
 export class ThemeService {
   themeName = localStorage.getItem('theme');
   private activeThem = new BehaviorSubject(this.themeName);
+  private themes: Theme[] = [];
 
-  constructor() { }
+  constructor() {
+    // tslint:disable-next-line:forin
+    for (const k in themes) {
+      this.themes.push(new Theme(
+        k,
+        themes[k],
+        themes_meta[k])
+      );
+    }
+    this.themes.sort((a, b) => {
+      if (a.order < b.order) {return -1; } else if (a.order > b.order) {return 1; }
+      return 0;
+    });
+  }
 
   public getTheme() {
     return this.activeThem.asObservable();
@@ -18,4 +34,15 @@ export class ThemeService {
     this.activeThem.next(name);
     localStorage.setItem('theme', name);
   }
+
+  public getThemes(): Theme[] {
+    return this.themes;
+  }
+
+  public getThemeByKey(key: string): Theme {
+    for (let i = 0; i < this.themes.length; i++) {
+      if (this.themes[i].key === key) {return this.themes[i]; }
+    }
+    return null;
+  }
 }