From 0c2638cfa31032cf2b1197bbdfe22c5334b25a39 Mon Sep 17 00:00:00 2001
From: Markus Grigull <web@grigull.me>
Date: Tue, 26 Jul 2016 19:28:05 +0200
Subject: [PATCH] Add simulation route and model

Simulations are the container for simulation models
---
 VILLAS.mdj                 | 3514 +++++++++++++++++++++++++-----------
 models/project.js          |    3 +-
 models/simulation.js       |   45 +
 models/simulationModel.js  |    7 +-
 models/user.js             |   12 +-
 routes/simulationModels.js |   22 +-
 routes/simulations.js      |  134 ++
 server.js                  |    2 +
 8 files changed, 2645 insertions(+), 1094 deletions(-)
 create mode 100644 models/simulation.js
 create mode 100644 routes/simulations.js

diff --git a/VILLAS.mdj b/VILLAS.mdj
index 8ad8675..ecab518 100644
--- a/VILLAS.mdj
+++ b/VILLAS.mdj
@@ -1469,7 +1469,7 @@
 									"containerExtending": false,
 									"left": 350,
 									"top": 540.5,
-									"width": 103,
+									"width": 104.5263671875,
 									"height": 25,
 									"autoResize": false,
 									"stereotypeLabel": {
@@ -1780,7 +1780,7 @@
 									"containerExtending": false,
 									"left": 349.5,
 									"top": 604.5,
-									"width": 103,
+									"width": 103.8662109375,
 									"height": 25,
 									"autoResize": false,
 									"stereotypeLabel": {
@@ -3086,7 +3086,7 @@
 									"containerExtending": false,
 									"left": 352.5,
 									"top": 420.5,
-									"width": 118,
+									"width": 118.6181640625,
 									"height": 25,
 									"autoResize": false,
 									"stereotypeLabel": {
@@ -4221,7 +4221,7 @@
 									"containerExtending": false,
 									"left": 338.5,
 									"top": 692.5,
-									"width": 127,
+									"width": 127.568359375,
 									"height": 25,
 									"autoResize": false,
 									"stereotypeLabel": {
@@ -5214,8 +5214,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -352,
-											"top": 0,
+											"left": -368,
+											"top": 176,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -5238,8 +5238,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 61,
-											"top": 223,
+											"left": 53,
+											"top": 311,
 											"width": 151,
 											"height": 13,
 											"autoResize": false,
@@ -5263,8 +5263,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -352,
-											"top": 0,
+											"left": -368,
+											"top": 176,
 											"width": 80.49462890625,
 											"height": 13,
 											"autoResize": false,
@@ -5288,8 +5288,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -352,
-											"top": 0,
+											"left": -368,
+											"top": 176,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -5307,8 +5307,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 56,
-									"top": 216,
+									"left": 48,
+									"top": 304,
 									"width": 161,
 									"height": 25,
 									"autoResize": false,
@@ -5353,8 +5353,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 61,
-											"top": 246,
+											"left": 53,
+											"top": 334,
 											"width": 151,
 											"height": 13,
 											"autoResize": false,
@@ -5381,8 +5381,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 61,
-											"top": 261,
+											"left": 53,
+											"top": 349,
 											"width": 151,
 											"height": 13,
 											"autoResize": false,
@@ -5409,8 +5409,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 61,
-											"top": 276,
+											"left": 53,
+											"top": 364,
 											"width": 151,
 											"height": 13,
 											"autoResize": false,
@@ -5437,8 +5437,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 61,
-											"top": 291,
+											"left": 53,
+											"top": 379,
 											"width": 151,
 											"height": 13,
 											"autoResize": false,
@@ -5465,8 +5465,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 61,
-											"top": 306,
+											"left": 53,
+											"top": 394,
 											"width": 151,
 											"height": 13,
 											"autoResize": false,
@@ -5485,8 +5485,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 56,
-									"top": 241,
+									"left": 48,
+									"top": 329,
 									"width": 161,
 									"height": 83,
 									"autoResize": false
@@ -5509,8 +5509,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 56,
-									"top": 324,
+									"left": 48,
+									"top": 412,
 									"width": 161,
 									"height": 10,
 									"autoResize": false
@@ -5533,8 +5533,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -176,
-									"top": 0,
+									"left": -184,
+									"top": 88,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -5557,8 +5557,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -176,
-									"top": 0,
+									"left": -184,
+									"top": 88,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -5573,8 +5573,8 @@
 							"showShadow": true,
 							"containerChangeable": true,
 							"containerExtending": false,
-							"left": 56,
-							"top": 216,
+							"left": 48,
+							"top": 304,
 							"width": 161,
 							"height": 225,
 							"autoResize": false,
@@ -5640,8 +5640,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -496,
-											"top": -96,
+											"left": -512,
+											"top": 80,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -5664,8 +5664,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 357,
-											"top": 223,
+											"left": 349,
+											"top": 311,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -5689,8 +5689,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -496,
-											"top": -96,
+											"left": -512,
+											"top": 80,
 											"width": 80.49462890625,
 											"height": 13,
 											"autoResize": false,
@@ -5714,8 +5714,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -496,
-											"top": -96,
+											"left": -512,
+											"top": 80,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -5733,8 +5733,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 352,
-									"top": 216,
+									"left": 344,
+									"top": 304,
 									"width": 169,
 									"height": 25,
 									"autoResize": false,
@@ -5779,8 +5779,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 357,
-											"top": 246,
+											"left": 349,
+											"top": 334,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -5807,8 +5807,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 357,
-											"top": 261,
+											"left": 349,
+											"top": 349,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -5827,8 +5827,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 352,
-									"top": 241,
+									"left": 344,
+									"top": 329,
 									"width": 169,
 									"height": 38,
 									"autoResize": false
@@ -5851,8 +5851,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 352,
-									"top": 279,
+									"left": 344,
+									"top": 367,
 									"width": 169,
 									"height": 10,
 									"autoResize": false
@@ -5875,8 +5875,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -248,
-									"top": -48,
+									"left": -256,
+									"top": 40,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -5899,8 +5899,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -248,
-									"top": -48,
+									"left": -256,
+									"top": 40,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -5915,8 +5915,8 @@
 							"showShadow": true,
 							"containerChangeable": true,
 							"containerExtending": false,
-							"left": 352,
-							"top": 216,
+							"left": 344,
+							"top": 304,
 							"width": 169,
 							"height": 225,
 							"autoResize": false,
@@ -5975,8 +5975,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 284,
-									"top": 307,
+									"left": 276,
+									"top": 395,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
@@ -6008,8 +6008,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 284,
-									"top": 292,
+									"left": 276,
+									"top": 380,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
@@ -6041,8 +6041,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 284,
-									"top": 337,
+									"left": 276,
+									"top": 425,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
@@ -6074,8 +6074,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 215,
-									"top": 307,
+									"left": 207,
+									"top": 395,
 									"width": 54,
 									"height": 13,
 									"autoResize": false,
@@ -6108,8 +6108,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 245,
-									"top": 293,
+									"left": 237,
+									"top": 381,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
@@ -6141,8 +6141,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 235,
-									"top": 334,
+									"left": 227,
+									"top": 422,
 									"width": 7,
 									"height": 13,
 									"autoResize": false,
@@ -6175,8 +6175,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 304,
-									"top": 307,
+									"left": 296,
+									"top": 395,
 									"width": 42,
 									"height": 13,
 									"autoResize": false,
@@ -6209,8 +6209,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 322,
-									"top": 293,
+									"left": 314,
+									"top": 381,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
@@ -6242,8 +6242,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 319,
-									"top": 334,
+									"left": 311,
+									"top": 422,
 									"width": 20,
 									"height": 13,
 									"autoResize": false,
@@ -6276,8 +6276,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -176,
-									"top": 0,
+									"left": -184,
+									"top": 88,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -6300,8 +6300,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -176,
-									"top": 0,
+									"left": -184,
+									"top": 88,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -6323,7 +6323,7 @@
 								"$ref": "AAAAAAFU42gTNqutGVA="
 							},
 							"lineStyle": 1,
-							"points": "217:328;351:328",
+							"points": "209:416;343:416",
 							"stereotypeDisplay": "label",
 							"showVisibility": true,
 							"showProperty": true,
@@ -6398,8 +6398,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -64,
-											"top": -320,
+											"left": 0,
+											"top": -688,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -6422,13 +6422,13 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 645,
-											"top": 223,
+											"left": 677,
+											"top": 39,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
 											"underline": false,
-											"text": "Model",
+											"text": "SimulationModel",
 											"horizontalAlignment": 2,
 											"verticalAlignment": 5
 										},
@@ -6447,8 +6447,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -64,
-											"top": -320,
+											"left": 0,
+											"top": -688,
 											"width": 80.49462890625,
 											"height": 13,
 											"autoResize": false,
@@ -6472,8 +6472,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -64,
-											"top": -320,
+											"left": 0,
+											"top": -688,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -6491,8 +6491,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 640,
-									"top": 216,
+									"left": 672,
+									"top": 32,
 									"width": 169,
 									"height": 25,
 									"autoResize": false,
@@ -6537,8 +6537,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 645,
-											"top": 246,
+											"left": 677,
+											"top": 62,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -6565,8 +6565,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 645,
-											"top": 261,
+											"left": 677,
+											"top": 77,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -6593,8 +6593,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 645,
-											"top": 276,
+											"left": 677,
+											"top": 92,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -6621,8 +6621,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 645,
-											"top": 291,
+											"left": 677,
+											"top": 107,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -6641,8 +6641,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 640,
-									"top": 241,
+									"left": 672,
+									"top": 57,
 									"width": 169,
 									"height": 68,
 									"autoResize": false
@@ -6665,8 +6665,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 640,
-									"top": 309,
+									"left": 672,
+									"top": 125,
 									"width": 169,
 									"height": 10,
 									"autoResize": false
@@ -6689,8 +6689,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -32,
-									"top": -160,
+									"left": 0,
+									"top": -344,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -6713,8 +6713,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -32,
-									"top": -160,
+									"left": 0,
+									"top": -344,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -6729,8 +6729,8 @@
 							"showShadow": true,
 							"containerChangeable": true,
 							"containerExtending": false,
-							"left": 640,
-							"top": 216,
+							"left": 672,
+							"top": 32,
 							"width": 169,
 							"height": 225,
 							"autoResize": false,
@@ -6762,25 +6762,125 @@
 							}
 						},
 						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFU5rUWBp8L9p4=",
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFU5rum1KgKEBk=",
 							"_parent": {
 								"$ref": "AAAAAAFU42fjDKtd44s="
 							},
 							"model": {
-								"$ref": "AAAAAAFU5rUWBJ8HZAk="
+								"$ref": "AAAAAAFU5rum06gInlg="
 							},
 							"subViews": [
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWBp8MZ5M=",
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFU5rum1agLJ6c=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rum1KgKEBk="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBJ8HZAk="
+										"$ref": "AAAAAAFU5rum06gInlg="
 									},
-									"visible": false,
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFU5rum1agMW8Q=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rum1agLJ6c="
+											},
+											"visible": false,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": -128,
+											"top": 144,
+											"width": 0,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"horizontalAlignment": 2,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFU5rum16gNLFI=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rum1agLJ6c="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;1",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 349,
+											"top": 647,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "Visualization",
+											"horizontalAlignment": 2,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFU5rum16gOoqg=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rum1agLJ6c="
+											},
+											"visible": false,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": -128,
+											"top": 144,
+											"width": 80.49462890625,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "(from Model)",
+											"horizontalAlignment": 2,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFU5rum16gPRgM=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rum1agLJ6c="
+											},
+											"visible": false,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": -128,
+											"top": 144,
+											"width": 0,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"horizontalAlignment": 1,
+											"verticalAlignment": 5
+										}
+									],
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -6789,31 +6889,92 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 580,
-									"top": 307,
-									"width": 0,
-									"height": 13,
+									"left": 344,
+									"top": 640,
+									"width": 169,
+									"height": 25,
 									"autoResize": false,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFU5rum1agMW8Q="
 									},
-									"edgePosition": 1,
-									"underline": false,
-									"horizontalAlignment": 2,
-									"verticalAlignment": 5
+									"nameLabel": {
+										"$ref": "AAAAAAFU5rum16gNLFI="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFU5rum16gOoqg="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFU5rum16gPRgM="
+									}
 								},
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWBp8NSHY=",
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFU5rum2KgQiX0=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rum1KgKEBk="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBJ8HZAk="
+										"$ref": "AAAAAAFU5rum06gInlg="
 									},
-									"visible": null,
+									"subViews": [
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFU5rv4uKiwWDQ=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rum2KgQiX0="
+											},
+											"model": {
+												"$ref": "AAAAAAFU5rv4fKin0EU="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 349,
+											"top": 670,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+id: string",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFU5r2Ya62TIT8=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rum2KgQiX0="
+											},
+											"model": {
+												"$ref": "AAAAAAFU5r2YNa2Kc64="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 349,
+											"top": 685,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+name: string",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										}
+									],
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -6822,31 +6983,22 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 580,
-									"top": 292,
-									"width": 0,
-									"height": 13,
-									"autoResize": false,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
-									},
-									"edgePosition": 1,
-									"underline": false,
-									"horizontalAlignment": 2,
-									"verticalAlignment": 5
+									"left": 344,
+									"top": 665,
+									"width": 169,
+									"height": 38,
+									"autoResize": false
 								},
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWBp8OS5c=",
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFU5rum2KgR1uI=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rum1KgKEBk="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBJ8HZAk="
+										"$ref": "AAAAAAFU5rum06gInlg="
 									},
-									"visible": false,
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -6855,31 +7007,221 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 580,
-									"top": 337,
-									"width": 0,
-									"height": 13,
-									"autoResize": false,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
-									},
-									"edgePosition": 1,
-									"underline": false,
-									"horizontalAlignment": 2,
-									"verticalAlignment": 5
+									"left": 344,
+									"top": 703,
+									"width": 169,
+									"height": 10,
+									"autoResize": false
 								},
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWBp8PmWs=",
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFU5rum2agSP/c=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rum1KgKEBk="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBJ8Ih58="
+										"$ref": "AAAAAAFU5rum06gInlg="
 									},
-									"visible": true,
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": -64,
+									"top": 72,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
+								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFU5rum2agT+YE=",
+									"_parent": {
+										"$ref": "AAAAAAFU5rum1KgKEBk="
+									},
+									"model": {
+										"$ref": "AAAAAAFU5rum06gInlg="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": -64,
+									"top": 72,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
+								}
+							],
+							"visible": true,
+							"enabled": true,
+							"lineColor": "#000000",
+							"fillColor": "#ffffff",
+							"fontColor": "#000000",
+							"font": "Arial;13;0",
+							"showShadow": true,
+							"containerChangeable": true,
+							"containerExtending": false,
+							"left": 344,
+							"top": 640,
+							"width": 169,
+							"height": 225,
+							"autoResize": false,
+							"stereotypeDisplay": "label",
+							"showVisibility": true,
+							"showNamespace": false,
+							"showProperty": true,
+							"showType": true,
+							"nameCompartment": {
+								"$ref": "AAAAAAFU5rum1agLJ6c="
+							},
+							"wordWrap": false,
+							"suppressAttributes": false,
+							"suppressOperations": false,
+							"suppressReceptions": true,
+							"showMultiplicity": true,
+							"showOperationSignature": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFU5rum2KgQiX0="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFU5rum2KgR1uI="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFU5rum2agSP/c="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFU5rum2agT+YE="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFU5rxKFqjQe14=",
+							"_parent": {
+								"$ref": "AAAAAAFU42fjDKtd44s="
+							},
+							"model": {
+								"$ref": "AAAAAAFU5rxKE6jMusw="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFU5rxKF6jR9VM=",
+									"_parent": {
+										"$ref": "AAAAAAFU5rxKFqjQe14="
+									},
+									"model": {
+										"$ref": "AAAAAAFU5rxKE6jMusw="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 442,
+									"top": 577,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFU5rxKFqjQe14="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFU5rxKF6jSG9g=",
+									"_parent": {
+										"$ref": "AAAAAAFU5rxKFqjQe14="
+									},
+									"model": {
+										"$ref": "AAAAAAFU5rxKE6jMusw="
+									},
+									"visible": null,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 457,
+									"top": 577,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFU5rxKFqjQe14="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFU5rxKF6jTuT8=",
+									"_parent": {
+										"$ref": "AAAAAAFU5rxKFqjQe14="
+									},
+									"model": {
+										"$ref": "AAAAAAFU5rxKE6jMusw="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 413,
+									"top": 578,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFU5rxKFqjQe14="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFU5rxKF6jUsaI=",
+									"_parent": {
+										"$ref": "AAAAAAFU5rxKFqjQe14="
+									},
+									"model": {
+										"$ref": "AAAAAAFU5rxKFKjNlhk="
+									},
+									"visible": false,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -6888,30 +7230,29 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 525,
-									"top": 307,
-									"width": 43,
+									"left": 443,
+									"top": 548,
+									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 0.5235987755982988,
 									"distance": 30,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"edgePosition": 2,
 									"underline": false,
-									"text": "+model",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWBp8Q454=",
+									"_id": "AAAAAAFU5rxKGKjVcAg=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBJ8Ih58="
+										"$ref": "AAAAAAFU5rxKFKjNlhk="
 									},
 									"visible": false,
 									"enabled": true,
@@ -6922,15 +7263,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 549,
-									"top": 293,
+									"left": 456,
+									"top": 551,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 0.7853981633974483,
 									"distance": 40,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"edgePosition": 2,
 									"underline": false,
@@ -6939,12 +7280,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWB58RO6Q=",
+									"_id": "AAAAAAFU5rxKGKjW3I8=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBJ8Ih58="
+										"$ref": "AAAAAAFU5rxKFKjNlhk="
 									},
 									"visible": true,
 									"enabled": true,
@@ -6955,32 +7296,32 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 532,
-									"top": 334,
-									"width": 20,
+									"left": 412,
+									"top": 544,
+									"width": 7,
 									"height": 13,
 									"autoResize": false,
 									"alpha": -0.5235987755982988,
 									"distance": 25,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"edgePosition": 2,
 									"underline": false,
-									"text": "1..*",
+									"text": "1",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWB58SVJs=",
+									"_id": "AAAAAAFU5rxKGKjXWms=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBZ8JmCM="
+										"$ref": "AAAAAAFU5rxKFKjOAo4="
 									},
-									"visible": false,
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -6989,30 +7330,30 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 606,
-									"top": 307,
-									"width": 15,
+									"left": 432,
+									"top": 608,
+									"width": 87,
 									"height": 13,
 									"autoResize": false,
-									"alpha": -0.5235987755982988,
-									"distance": 30,
+									"alpha": -1.081943969772581,
+									"distance": 53.23532661682466,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"edgePosition": 0,
 									"underline": false,
-									"text": "+1",
+									"text": "+visualizations",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWB58THFw=",
+									"_id": "AAAAAAFU5rxKGKjYLQo=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBZ8JmCM="
+										"$ref": "AAAAAAFU5rxKFKjOAo4="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7023,15 +7364,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 610,
-									"top": 293,
+									"left": 456,
+									"top": 604,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": -0.7853981633974483,
 									"distance": 40,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"edgePosition": 0,
 									"underline": false,
@@ -7040,12 +7381,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rUWB58UWnM=",
+									"_id": "AAAAAAFU5rxKGajZ8AA=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBZ8JmCM="
+										"$ref": "AAAAAAFU5rxKFKjOAo4="
 									},
 									"visible": true,
 									"enabled": true,
@@ -7056,30 +7397,30 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 614,
-									"top": 334,
-									"width": 7,
+									"left": 405,
+									"top": 611,
+									"width": 20,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 0.5235987755982988,
 									"distance": 25,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"edgePosition": 0,
 									"underline": false,
-									"text": "1",
+									"text": "1..*",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFU5rUWCJ8VMns=",
+									"_id": "AAAAAAFU5rxKGaja/I4=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBJ8Ih58="
+										"$ref": "AAAAAAFU5rxKFKjNlhk="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7090,20 +7431,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 0,
-									"top": 0,
+									"left": -8,
+									"top": 88,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFU5rUWCJ8WVtM=",
+									"_id": "AAAAAAFU5rxKGajbVrg=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rUWBp8L9p4="
+										"$ref": "AAAAAAFU5rxKFqjQe14="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rUWBZ8JmCM="
+										"$ref": "AAAAAAFU5rxKFKjOAo4="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7114,9 +7455,9 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 568,
-									"top": 316.5,
-									"width": 73,
+									"left": -8,
+									"top": 88,
+									"width": 10,
 									"height": 10,
 									"autoResize": false
 								}
@@ -7131,77 +7472,77 @@
 							"containerChangeable": false,
 							"containerExtending": false,
 							"head": {
-								"$ref": "AAAAAAFU5rTOT56Y0MM="
+								"$ref": "AAAAAAFU5rum1KgKEBk="
 							},
 							"tail": {
 								"$ref": "AAAAAAFU42p81qvwoZI="
 							},
 							"lineStyle": 1,
-							"points": "521:328;639:328",
+							"points": "428:529;428:639",
 							"stereotypeDisplay": "label",
 							"showVisibility": true,
 							"showProperty": true,
 							"nameLabel": {
-								"$ref": "AAAAAAFU5rUWBp8MZ5M="
+								"$ref": "AAAAAAFU5rxKF6jR9VM="
 							},
 							"stereotypeLabel": {
-								"$ref": "AAAAAAFU5rUWBp8NSHY="
+								"$ref": "AAAAAAFU5rxKF6jSG9g="
 							},
 							"propertyLabel": {
-								"$ref": "AAAAAAFU5rUWBp8OS5c="
+								"$ref": "AAAAAAFU5rxKF6jTuT8="
 							},
 							"showMultiplicity": true,
 							"showType": true,
 							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFU5rUWBp8PmWs="
+								"$ref": "AAAAAAFU5rxKF6jUsaI="
 							},
 							"tailPropertyLabel": {
-								"$ref": "AAAAAAFU5rUWBp8Q454="
+								"$ref": "AAAAAAFU5rxKGKjVcAg="
 							},
 							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFU5rUWB58RO6Q="
+								"$ref": "AAAAAAFU5rxKGKjW3I8="
 							},
 							"headRoleNameLabel": {
-								"$ref": "AAAAAAFU5rUWB58SVJs="
+								"$ref": "AAAAAAFU5rxKGKjXWms="
 							},
 							"headPropertyLabel": {
-								"$ref": "AAAAAAFU5rUWB58THFw="
+								"$ref": "AAAAAAFU5rxKGKjYLQo="
 							},
 							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFU5rUWB58UWnM="
+								"$ref": "AAAAAAFU5rxKGajZ8AA="
 							},
 							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFU5rUWCJ8VMns="
+								"$ref": "AAAAAAFU5rxKGaja/I4="
 							},
 							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFU5rUWCJ8WVtM="
+								"$ref": "AAAAAAFU5rxKGajbVrg="
 							}
 						},
 						{
 							"_type": "UMLClassView",
-							"_id": "AAAAAAFU5rum1KgKEBk=",
+							"_id": "AAAAAAFU5rzTh6srG0I=",
 							"_parent": {
 								"$ref": "AAAAAAFU42fjDKtd44s="
 							},
 							"model": {
-								"$ref": "AAAAAAFU5rum06gInlg="
+								"$ref": "AAAAAAFU5rzThqspqHY="
 							},
 							"subViews": [
 								{
 									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFU5rum1agLJ6c=",
+									"_id": "AAAAAAFU5rzTh6ss08o=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rum1KgKEBk="
+										"$ref": "AAAAAAFU5rzTh6srG0I="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rum06gInlg="
+										"$ref": "AAAAAAFU5rzThqspqHY="
 									},
 									"subViews": [
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rum1agMW8Q=",
+											"_id": "AAAAAAFU5rzTh6stTSM=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rum1agLJ6c="
+												"$ref": "AAAAAAFU5rzTh6ss08o="
 											},
 											"visible": false,
 											"enabled": true,
@@ -7212,8 +7553,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -112,
-											"top": -32,
+											"left": -144,
+											"top": -64,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -7223,34 +7564,34 @@
 										},
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rum16gNLFI=",
+											"_id": "AAAAAAFU5rzTiKsuKlA=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rum1agLJ6c="
+												"$ref": "AAAAAAFU5rzTh6ss08o="
 											},
 											"visible": true,
 											"enabled": true,
 											"lineColor": "#000000",
 											"fillColor": "#ffffff",
 											"fontColor": "#000000",
-											"font": "Arial;13;1",
+											"font": "Arial;13;3",
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 357,
-											"top": 559,
+											"left": 629,
+											"top": 647,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
 											"underline": false,
-											"text": "Visualization",
+											"text": "Plot",
 											"horizontalAlignment": 2,
 											"verticalAlignment": 5
 										},
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rum16gOoqg=",
+											"_id": "AAAAAAFU5rzTiKsvTdI=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rum1agLJ6c="
+												"$ref": "AAAAAAFU5rzTh6ss08o="
 											},
 											"visible": false,
 											"enabled": true,
@@ -7261,8 +7602,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -112,
-											"top": -32,
+											"left": -144,
+											"top": -64,
 											"width": 80.49462890625,
 											"height": 13,
 											"autoResize": false,
@@ -7273,9 +7614,9 @@
 										},
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rum16gPRgM=",
+											"_id": "AAAAAAFU5rzTiKswxl4=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rum1agLJ6c="
+												"$ref": "AAAAAAFU5rzTh6ss08o="
 											},
 											"visible": false,
 											"enabled": true,
@@ -7286,8 +7627,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -112,
-											"top": -32,
+											"left": -144,
+											"top": -64,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -7305,42 +7646,42 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 352,
-									"top": 552,
+									"left": 624,
+									"top": 640,
 									"width": 169,
 									"height": 25,
 									"autoResize": false,
 									"stereotypeLabel": {
-										"$ref": "AAAAAAFU5rum1agMW8Q="
+										"$ref": "AAAAAAFU5rzTh6stTSM="
 									},
 									"nameLabel": {
-										"$ref": "AAAAAAFU5rum16gNLFI="
+										"$ref": "AAAAAAFU5rzTiKsuKlA="
 									},
 									"namespaceLabel": {
-										"$ref": "AAAAAAFU5rum16gOoqg="
+										"$ref": "AAAAAAFU5rzTiKsvTdI="
 									},
 									"propertyLabel": {
-										"$ref": "AAAAAAFU5rum16gPRgM="
+										"$ref": "AAAAAAFU5rzTiKswxl4="
 									}
 								},
 								{
 									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFU5rum2KgQiX0=",
+									"_id": "AAAAAAFU5rzTiKsxUVA=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rum1KgKEBk="
+										"$ref": "AAAAAAFU5rzTh6srG0I="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rum06gInlg="
+										"$ref": "AAAAAAFU5rzThqspqHY="
 									},
 									"subViews": [
 										{
 											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5rv4uKiwWDQ=",
+											"_id": "AAAAAAFU5r1eqq0vZhk=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rum2KgQiX0="
+												"$ref": "AAAAAAFU5rzTiKsxUVA="
 											},
 											"model": {
-												"$ref": "AAAAAAFU5rv4fKin0EU="
+												"$ref": "AAAAAAFU5r1edq0jalI="
 											},
 											"visible": true,
 											"enabled": true,
@@ -7351,8 +7692,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 357,
-											"top": 582,
+											"left": 629,
+											"top": 670,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -7363,12 +7704,12 @@
 										},
 										{
 											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5r2Ya62TIT8=",
+											"_id": "AAAAAAFU5r3Pw64iHZ8=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rum2KgQiX0="
+												"$ref": "AAAAAAFU5rzTiKsxUVA="
 											},
 											"model": {
-												"$ref": "AAAAAAFU5r2YNa2Kc64="
+												"$ref": "AAAAAAFU5r3Pka4WiU8="
 											},
 											"visible": true,
 											"enabled": true,
@@ -7379,8 +7720,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 357,
-											"top": 597,
+											"left": 629,
+											"top": 685,
 											"width": 159,
 											"height": 13,
 											"autoResize": false,
@@ -7388,6 +7729,146 @@
 											"text": "+name: string",
 											"horizontalAlignment": 0,
 											"verticalAlignment": 5
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFU5r46Ta8UJV8=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rzTiKsxUVA="
+											},
+											"model": {
+												"$ref": "AAAAAAFU5r46Fa8IgyM="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 629,
+											"top": 700,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+signal: string",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFU5r6eHq+TaT4=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rzTiKsxUVA="
+											},
+											"model": {
+												"$ref": "AAAAAAFU5r6d8q+HP0w="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 629,
+											"top": 715,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+position: Point",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFU5r7G16/60S0=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rzTiKsxUVA="
+											},
+											"model": {
+												"$ref": "AAAAAAFU5r7Goa/ulJ0="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 629,
+											"top": 730,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+size: Size",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFU5sY/LcVpYkE=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rzTiKsxUVA="
+											},
+											"model": {
+												"$ref": "AAAAAAFU5sY+/cVduaQ="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 629,
+											"top": 745,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+title: string",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFU5sbFAMa9MZk=",
+											"_parent": {
+												"$ref": "AAAAAAFU5rzTiKsxUVA="
+											},
+											"model": {
+												"$ref": "AAAAAAFU5sbEvcax95c="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 629,
+											"top": 760,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+backgroundColor: color",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
 										}
 									],
 									"visible": true,
@@ -7399,20 +7880,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 352,
-									"top": 577,
+									"left": 624,
+									"top": 665,
 									"width": 169,
-									"height": 38,
+									"height": 113,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFU5rum2KgR1uI=",
+									"_id": "AAAAAAFU5rzTiKsyNp8=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rum1KgKEBk="
+										"$ref": "AAAAAAFU5rzTh6srG0I="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rum06gInlg="
+										"$ref": "AAAAAAFU5rzThqspqHY="
 									},
 									"visible": true,
 									"enabled": true,
@@ -7423,20 +7904,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 352,
-									"top": 615,
+									"left": 624,
+									"top": 778,
 									"width": 169,
 									"height": 10,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFU5rum2agSP/c=",
+									"_id": "AAAAAAFU5rzTiasz4es=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rum1KgKEBk="
+										"$ref": "AAAAAAFU5rzTh6srG0I="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rum06gInlg="
+										"$ref": "AAAAAAFU5rzThqspqHY="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7447,20 +7928,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -56,
-									"top": -16,
+									"left": -72,
+									"top": -32,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFU5rum2agT+YE=",
+									"_id": "AAAAAAFU5rzTias01kU=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rum1KgKEBk="
+										"$ref": "AAAAAAFU5rzTh6srG0I="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rum06gInlg="
+										"$ref": "AAAAAAFU5rzThqspqHY="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7471,8 +7952,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -56,
-									"top": -16,
+									"left": -72,
+									"top": -32,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -7487,8 +7968,8 @@
 							"showShadow": true,
 							"containerChangeable": true,
 							"containerExtending": false,
-							"left": 352,
-							"top": 552,
+							"left": 624,
+							"top": 640,
 							"width": 169,
 							"height": 225,
 							"autoResize": false,
@@ -7498,7 +7979,7 @@
 							"showProperty": true,
 							"showType": true,
 							"nameCompartment": {
-								"$ref": "AAAAAAFU5rum1agLJ6c="
+								"$ref": "AAAAAAFU5rzTh6ss08o="
 							},
 							"wordWrap": false,
 							"suppressAttributes": false,
@@ -7507,36 +7988,36 @@
 							"showMultiplicity": true,
 							"showOperationSignature": true,
 							"attributeCompartment": {
-								"$ref": "AAAAAAFU5rum2KgQiX0="
+								"$ref": "AAAAAAFU5rzTiKsxUVA="
 							},
 							"operationCompartment": {
-								"$ref": "AAAAAAFU5rum2KgR1uI="
+								"$ref": "AAAAAAFU5rzTiKsyNp8="
 							},
 							"receptionCompartment": {
-								"$ref": "AAAAAAFU5rum2agSP/c="
+								"$ref": "AAAAAAFU5rzTiasz4es="
 							},
 							"templateParameterCompartment": {
-								"$ref": "AAAAAAFU5rum2agT+YE="
+								"$ref": "AAAAAAFU5rzTias01kU="
 							}
 						},
 						{
 							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFU5rxKFqjQe14=",
+							"_id": "AAAAAAFU5r0gVKvpO9o=",
 							"_parent": {
 								"$ref": "AAAAAAFU42fjDKtd44s="
 							},
 							"model": {
-								"$ref": "AAAAAAFU5rxKE6jMusw="
+								"$ref": "AAAAAAFU5r0gU6vlNlA="
 							},
 							"subViews": [
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKF6jR9VM=",
+									"_id": "AAAAAAFU5r0gVKvqVAc=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKE6jMusw="
+										"$ref": "AAAAAAFU5r0gU6vlNlA="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7547,15 +8028,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 450,
-									"top": 489,
+									"left": 568,
+									"top": 731,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 1.5707963267948966,
 									"distance": 15,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 1,
 									"underline": false,
@@ -7564,12 +8045,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKF6jSG9g=",
+									"_id": "AAAAAAFU5r0gVKvr2Fc=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKE6jMusw="
+										"$ref": "AAAAAAFU5r0gU6vlNlA="
 									},
 									"visible": null,
 									"enabled": true,
@@ -7580,15 +8061,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 465,
-									"top": 489,
+									"left": 568,
+									"top": 716,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 1.5707963267948966,
 									"distance": 30,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 1,
 									"underline": false,
@@ -7597,12 +8078,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKF6jTuT8=",
+									"_id": "AAAAAAFU5r0gVKvsMWQ=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKE6jMusw="
+										"$ref": "AAAAAAFU5r0gU6vlNlA="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7613,15 +8094,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 421,
-									"top": 490,
+									"left": 568,
+									"top": 761,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": -1.5707963267948966,
 									"distance": 15,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 1,
 									"underline": false,
@@ -7630,12 +8111,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKF6jUsaI=",
+									"_id": "AAAAAAFU5r0gVKvtrzY=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjNlhk="
+										"$ref": "AAAAAAFU5r0gU6vm044="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7646,15 +8127,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 451,
-									"top": 460,
+									"left": 538,
+									"top": 731,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 0.5235987755982988,
 									"distance": 30,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 2,
 									"underline": false,
@@ -7663,12 +8144,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKGKjVcAg=",
+									"_id": "AAAAAAFU5r0gVKvuazs=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjNlhk="
+										"$ref": "AAAAAAFU5r0gU6vm044="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7679,15 +8160,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 464,
-									"top": 463,
+									"left": 541,
+									"top": 717,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 0.7853981633974483,
 									"distance": 40,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 2,
 									"underline": false,
@@ -7696,12 +8177,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKGKjW3I8=",
+									"_id": "AAAAAAFU5r0gVKvvLzU=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjNlhk="
+										"$ref": "AAAAAAFU5r0gU6vm044="
 									},
 									"visible": true,
 									"enabled": true,
@@ -7712,15 +8193,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 420,
-									"top": 456,
+									"left": 531,
+									"top": 758,
 									"width": 7,
 									"height": 13,
 									"autoResize": false,
 									"alpha": -0.5235987755982988,
 									"distance": 25,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 2,
 									"underline": false,
@@ -7730,14 +8211,14 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKGKjXWms=",
+									"_id": "AAAAAAFU5r0gVKvws/s=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjOAo4="
+										"$ref": "AAAAAAFU5r0gU6vnmfI="
 									},
-									"visible": true,
+									"visible": false,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -7746,30 +8227,29 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 440,
-									"top": 520,
-									"width": 87,
+									"left": 597,
+									"top": 731,
+									"width": 0,
 									"height": 13,
 									"autoResize": false,
-									"alpha": -1.081943969772581,
-									"distance": 53.23532661682466,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 0,
 									"underline": false,
-									"text": "+visualizations",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKGKjYLQo=",
+									"_id": "AAAAAAFU5r0gVKvx3EQ=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjOAo4="
+										"$ref": "AAAAAAFU5r0gU6vnmfI="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7780,15 +8260,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 464,
-									"top": 516,
+									"left": 594,
+									"top": 717,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": -0.7853981633974483,
 									"distance": 40,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 0,
 									"underline": false,
@@ -7797,12 +8277,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5rxKGajZ8AA=",
+									"_id": "AAAAAAFU5r0gVKvyg/I=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjOAo4="
+										"$ref": "AAAAAAFU5r0gU6vnmfI="
 									},
 									"visible": true,
 									"enabled": true,
@@ -7813,30 +8293,30 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 413,
-									"top": 523,
+									"left": 591,
+									"top": 758,
 									"width": 20,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 0.5235987755982988,
 									"distance": 25,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"edgePosition": 0,
 									"underline": false,
-									"text": "1..*",
+									"text": "0..*",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFU5rxKGaja/I4=",
+									"_id": "AAAAAAFU5r0gVKvzWhw=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjNlhk="
+										"$ref": "AAAAAAFU5r0gU6vm044="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7847,20 +8327,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 0,
-									"top": 0,
+									"left": -8,
+									"top": 88,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFU5rxKGajbVrg=",
+									"_id": "AAAAAAFU5r0gVKv0DWY=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rxKFqjQe14="
+										"$ref": "AAAAAAFU5r0gVKvpO9o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rxKFKjOAo4="
+										"$ref": "AAAAAAFU5r0gU6vnmfI="
 									},
 									"visible": false,
 									"enabled": true,
@@ -7871,8 +8351,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 0,
-									"top": 0,
+									"left": -8,
+									"top": 88,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -7888,77 +8368,77 @@
 							"containerChangeable": false,
 							"containerExtending": false,
 							"head": {
-								"$ref": "AAAAAAFU5rum1KgKEBk="
+								"$ref": "AAAAAAFU5rzTh6srG0I="
 							},
 							"tail": {
-								"$ref": "AAAAAAFU42p81qvwoZI="
+								"$ref": "AAAAAAFU5rum1KgKEBk="
 							},
 							"lineStyle": 1,
-							"points": "436:441;436:551",
+							"points": "513:752;623:752",
 							"stereotypeDisplay": "label",
 							"showVisibility": true,
 							"showProperty": true,
 							"nameLabel": {
-								"$ref": "AAAAAAFU5rxKF6jR9VM="
+								"$ref": "AAAAAAFU5r0gVKvqVAc="
 							},
 							"stereotypeLabel": {
-								"$ref": "AAAAAAFU5rxKF6jSG9g="
+								"$ref": "AAAAAAFU5r0gVKvr2Fc="
 							},
 							"propertyLabel": {
-								"$ref": "AAAAAAFU5rxKF6jTuT8="
+								"$ref": "AAAAAAFU5r0gVKvsMWQ="
 							},
 							"showMultiplicity": true,
 							"showType": true,
 							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFU5rxKF6jUsaI="
+								"$ref": "AAAAAAFU5r0gVKvtrzY="
 							},
 							"tailPropertyLabel": {
-								"$ref": "AAAAAAFU5rxKGKjVcAg="
+								"$ref": "AAAAAAFU5r0gVKvuazs="
 							},
 							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFU5rxKGKjW3I8="
+								"$ref": "AAAAAAFU5r0gVKvvLzU="
 							},
 							"headRoleNameLabel": {
-								"$ref": "AAAAAAFU5rxKGKjXWms="
+								"$ref": "AAAAAAFU5r0gVKvws/s="
 							},
 							"headPropertyLabel": {
-								"$ref": "AAAAAAFU5rxKGKjYLQo="
+								"$ref": "AAAAAAFU5r0gVKvx3EQ="
 							},
 							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFU5rxKGajZ8AA="
+								"$ref": "AAAAAAFU5r0gVKvyg/I="
 							},
 							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFU5rxKGaja/I4="
+								"$ref": "AAAAAAFU5r0gVKvzWhw="
 							},
 							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFU5rxKGajbVrg="
+								"$ref": "AAAAAAFU5r0gVKv0DWY="
 							}
 						},
 						{
 							"_type": "UMLClassView",
-							"_id": "AAAAAAFU5rzTh6srG0I=",
+							"_id": "AAAAAAFU5sVbDML4liU=",
 							"_parent": {
 								"$ref": "AAAAAAFU42fjDKtd44s="
 							},
 							"model": {
-								"$ref": "AAAAAAFU5rzThqspqHY="
+								"$ref": "AAAAAAFU5sVbCsL2w9g="
 							},
 							"subViews": [
 								{
 									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFU5rzTh6ss08o=",
+									"_id": "AAAAAAFU5sVbDML5M8k=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rzTh6srG0I="
+										"$ref": "AAAAAAFU5sVbDML4liU="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rzThqspqHY="
+										"$ref": "AAAAAAFU5sVbCsL2w9g="
 									},
 									"subViews": [
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rzTh6stTSM=",
+											"_id": "AAAAAAFU5sVbDcL6iAY=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rzTh6ss08o="
+												"$ref": "AAAAAAFU5sVbDML5M8k="
 											},
 											"visible": false,
 											"enabled": true,
@@ -7969,8 +8449,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -128,
-											"top": -240,
+											"left": 16,
+											"top": 32,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -7980,34 +8460,34 @@
 										},
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rzTiKsuKlA=",
+											"_id": "AAAAAAFU5sVbDcL7QrY=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rzTh6ss08o="
+												"$ref": "AAAAAAFU5sVbDML5M8k="
 											},
 											"visible": true,
 											"enabled": true,
 											"lineColor": "#000000",
 											"fillColor": "#ffffff",
 											"fontColor": "#000000",
-											"font": "Arial;13;3",
+											"font": "Arial;13;1",
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 637,
-											"top": 559,
-											"width": 159,
+											"left": 909,
+											"top": 647,
+											"width": 167,
 											"height": 13,
 											"autoResize": false,
 											"underline": false,
-											"text": "Plot",
+											"text": "Chart",
 											"horizontalAlignment": 2,
 											"verticalAlignment": 5
 										},
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rzTiKsvTdI=",
+											"_id": "AAAAAAFU5sVbDcL85uM=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rzTh6ss08o="
+												"$ref": "AAAAAAFU5sVbDML5M8k="
 											},
 											"visible": false,
 											"enabled": true,
@@ -8018,8 +8498,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -128,
-											"top": -240,
+											"left": 16,
+											"top": 32,
 											"width": 80.49462890625,
 											"height": 13,
 											"autoResize": false,
@@ -8030,9 +8510,9 @@
 										},
 										{
 											"_type": "LabelView",
-											"_id": "AAAAAAFU5rzTiKswxl4=",
+											"_id": "AAAAAAFU5sVbDcL9g5w=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rzTh6ss08o="
+												"$ref": "AAAAAAFU5sVbDML5M8k="
 											},
 											"visible": false,
 											"enabled": true,
@@ -8043,8 +8523,8 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": -128,
-											"top": -240,
+											"left": 16,
+											"top": 32,
 											"width": 0,
 											"height": 13,
 											"autoResize": false,
@@ -8062,98 +8542,42 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 632,
-									"top": 552,
-									"width": 169,
+									"left": 904,
+									"top": 640,
+									"width": 177,
 									"height": 25,
 									"autoResize": false,
 									"stereotypeLabel": {
-										"$ref": "AAAAAAFU5rzTh6stTSM="
+										"$ref": "AAAAAAFU5sVbDcL6iAY="
 									},
 									"nameLabel": {
-										"$ref": "AAAAAAFU5rzTiKsuKlA="
+										"$ref": "AAAAAAFU5sVbDcL7QrY="
 									},
 									"namespaceLabel": {
-										"$ref": "AAAAAAFU5rzTiKsvTdI="
+										"$ref": "AAAAAAFU5sVbDcL85uM="
 									},
 									"propertyLabel": {
-										"$ref": "AAAAAAFU5rzTiKswxl4="
+										"$ref": "AAAAAAFU5sVbDcL9g5w="
 									}
 								},
 								{
 									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFU5rzTiKsxUVA=",
+									"_id": "AAAAAAFU5sVbDsL+Ynw=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rzTh6srG0I="
+										"$ref": "AAAAAAFU5sVbDML4liU="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rzThqspqHY="
+										"$ref": "AAAAAAFU5sVbCsL2w9g="
 									},
 									"subViews": [
 										{
 											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5r1eqq0vZhk=",
-											"_parent": {
-												"$ref": "AAAAAAFU5rzTiKsxUVA="
-											},
-											"model": {
-												"$ref": "AAAAAAFU5r1edq0jalI="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 637,
-											"top": 582,
-											"width": 159,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "+id: string",
-											"horizontalAlignment": 0,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5r3Pw64iHZ8=",
-											"_parent": {
-												"$ref": "AAAAAAFU5rzTiKsxUVA="
-											},
-											"model": {
-												"$ref": "AAAAAAFU5r3Pka4WiU8="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 637,
-											"top": 597,
-											"width": 159,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "+name: string",
-											"horizontalAlignment": 0,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5r46Ta8UJV8=",
+											"_id": "AAAAAAFU5sWyasR60tc=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rzTiKsxUVA="
+												"$ref": "AAAAAAFU5sVbDsL+Ynw="
 											},
 											"model": {
-												"$ref": "AAAAAAFU5r46Fa8IgyM="
+												"$ref": "AAAAAAFU5sWyNsRrzAE="
 											},
 											"visible": true,
 											"enabled": true,
@@ -8164,24 +8588,24 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 637,
-											"top": 612,
-											"width": 159,
+											"left": 909,
+											"top": 670,
+											"width": 167,
 											"height": 13,
 											"autoResize": false,
 											"underline": false,
-											"text": "+signal: string",
+											"text": "+units: string[2]",
 											"horizontalAlignment": 0,
 											"verticalAlignment": 5
 										},
 										{
 											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5r6eHq+TaT4=",
+											"_id": "AAAAAAFU5sYCLcThmgY=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rzTiKsxUVA="
+												"$ref": "AAAAAAFU5sVbDsL+Ynw="
 											},
 											"model": {
-												"$ref": "AAAAAAFU5r6d8q+HP0w="
+												"$ref": "AAAAAAFU5sYCAMTSBn8="
 											},
 											"visible": true,
 											"enabled": true,
@@ -8192,24 +8616,24 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 637,
-											"top": 627,
-											"width": 159,
+											"left": 909,
+											"top": 685,
+											"width": 167,
 											"height": 13,
 											"autoResize": false,
 											"underline": false,
-											"text": "+position: Point",
+											"text": "+labels: string[2]",
 											"horizontalAlignment": 0,
 											"verticalAlignment": 5
 										},
 										{
 											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5r7G16/60S0=",
+											"_id": "AAAAAAFU5sZrk8XrUqc=",
 											"_parent": {
-												"$ref": "AAAAAAFU5rzTiKsxUVA="
+												"$ref": "AAAAAAFU5sVbDsL+Ynw="
 											},
 											"model": {
-												"$ref": "AAAAAAFU5r7Goa/ulJ0="
+												"$ref": "AAAAAAFU5sZrXsXczjI="
 											},
 											"visible": true,
 											"enabled": true,
@@ -8220,69 +8644,13 @@
 											"showShadow": true,
 											"containerChangeable": false,
 											"containerExtending": false,
-											"left": 637,
-											"top": 642,
-											"width": 159,
+											"left": 909,
+											"top": 700,
+											"width": 167,
 											"height": 13,
 											"autoResize": false,
 											"underline": false,
-											"text": "+size: Size",
-											"horizontalAlignment": 0,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5sY/LcVpYkE=",
-											"_parent": {
-												"$ref": "AAAAAAFU5rzTiKsxUVA="
-											},
-											"model": {
-												"$ref": "AAAAAAFU5sY+/cVduaQ="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 637,
-											"top": 657,
-											"width": 159,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "+title: string",
-											"horizontalAlignment": 0,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5sbFAMa9MZk=",
-											"_parent": {
-												"$ref": "AAAAAAFU5rzTiKsxUVA="
-											},
-											"model": {
-												"$ref": "AAAAAAFU5sbEvcax95c="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 637,
-											"top": 672,
-											"width": 159,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "+backgroundColor: color",
+											"text": "+lineColor: color",
 											"horizontalAlignment": 0,
 											"verticalAlignment": 5
 										}
@@ -8296,20 +8664,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 632,
-									"top": 577,
-									"width": 169,
-									"height": 113,
+									"left": 904,
+									"top": 665,
+									"width": 177,
+									"height": 53,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFU5rzTiKsyNp8=",
+									"_id": "AAAAAAFU5sVbDsL/2a4=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rzTh6srG0I="
+										"$ref": "AAAAAAFU5sVbDML4liU="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rzThqspqHY="
+										"$ref": "AAAAAAFU5sVbCsL2w9g="
 									},
 									"visible": true,
 									"enabled": true,
@@ -8320,20 +8688,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 632,
-									"top": 690,
-									"width": 169,
+									"left": 904,
+									"top": 718,
+									"width": 177,
 									"height": 10,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFU5rzTiasz4es=",
+									"_id": "AAAAAAFU5sVbEMMA2GM=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rzTh6srG0I="
+										"$ref": "AAAAAAFU5sVbDML4liU="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rzThqspqHY="
+										"$ref": "AAAAAAFU5sVbCsL2w9g="
 									},
 									"visible": false,
 									"enabled": true,
@@ -8344,20 +8712,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -64,
-									"top": -120,
+									"left": 8,
+									"top": 16,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
 								},
 								{
 									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFU5rzTias01kU=",
+									"_id": "AAAAAAFU5sVbEMMBrzQ=",
 									"_parent": {
-										"$ref": "AAAAAAFU5rzTh6srG0I="
+										"$ref": "AAAAAAFU5sVbDML4liU="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5rzThqspqHY="
+										"$ref": "AAAAAAFU5sVbCsL2w9g="
 									},
 									"visible": false,
 									"enabled": true,
@@ -8368,8 +8736,8 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": -64,
-									"top": -120,
+									"left": 8,
+									"top": 16,
 									"width": 10,
 									"height": 10,
 									"autoResize": false
@@ -8384,9 +8752,9 @@
 							"showShadow": true,
 							"containerChangeable": true,
 							"containerExtending": false,
-							"left": 632,
-							"top": 552,
-							"width": 169,
+							"left": 904,
+							"top": 640,
+							"width": 177,
 							"height": 225,
 							"autoResize": false,
 							"stereotypeDisplay": "label",
@@ -8395,7 +8763,7 @@
 							"showProperty": true,
 							"showType": true,
 							"nameCompartment": {
-								"$ref": "AAAAAAFU5rzTh6ss08o="
+								"$ref": "AAAAAAFU5sVbDML5M8k="
 							},
 							"wordWrap": false,
 							"suppressAttributes": false,
@@ -8404,36 +8772,36 @@
 							"showMultiplicity": true,
 							"showOperationSignature": true,
 							"attributeCompartment": {
-								"$ref": "AAAAAAFU5rzTiKsxUVA="
+								"$ref": "AAAAAAFU5sVbDsL+Ynw="
 							},
 							"operationCompartment": {
-								"$ref": "AAAAAAFU5rzTiKsyNp8="
+								"$ref": "AAAAAAFU5sVbDsL/2a4="
 							},
 							"receptionCompartment": {
-								"$ref": "AAAAAAFU5rzTiasz4es="
+								"$ref": "AAAAAAFU5sVbEMMA2GM="
 							},
 							"templateParameterCompartment": {
-								"$ref": "AAAAAAFU5rzTias01kU="
+								"$ref": "AAAAAAFU5sVbEMMBrzQ="
 							}
 						},
 						{
-							"_type": "UMLAssociationView",
-							"_id": "AAAAAAFU5r0gVKvpO9o=",
+							"_type": "UMLGeneralizationView",
+							"_id": "AAAAAAFU5sWWb8PkrWs=",
 							"_parent": {
 								"$ref": "AAAAAAFU42fjDKtd44s="
 							},
 							"model": {
-								"$ref": "AAAAAAFU5r0gU6vlNlA="
+								"$ref": "AAAAAAFU5sWWbsPi7Fo="
 							},
 							"subViews": [
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvqVAc=",
+									"_id": "AAAAAAFU5sWWb8Plkh8=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFU5sWWb8PkrWs="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vlNlA="
+										"$ref": "AAAAAAFU5sWWbsPi7Fo="
 									},
 									"visible": false,
 									"enabled": true,
@@ -8444,15 +8812,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 576,
-									"top": 643,
+									"left": 847,
+									"top": 761,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 1.5707963267948966,
 									"distance": 15,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFU5sWWb8PkrWs="
 									},
 									"edgePosition": 1,
 									"underline": false,
@@ -8461,12 +8829,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvr2Fc=",
+									"_id": "AAAAAAFU5sWWb8PmJxk=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFU5sWWb8PkrWs="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vlNlA="
+										"$ref": "AAAAAAFU5sWWbsPi7Fo="
 									},
 									"visible": null,
 									"enabled": true,
@@ -8477,15 +8845,15 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 576,
-									"top": 628,
+									"left": 847,
+									"top": 776,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": 1.5707963267948966,
 									"distance": 30,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFU5sWWb8PkrWs="
 									},
 									"edgePosition": 1,
 									"underline": false,
@@ -8494,12 +8862,12 @@
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvsMWQ=",
+									"_id": "AAAAAAFU5sWWb8Pn6Dc=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFU5sWWb8PkrWs="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vlNlA="
+										"$ref": "AAAAAAFU5sWWbsPi7Fo="
 									},
 									"visible": false,
 									"enabled": true,
@@ -8510,31 +8878,172 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 576,
-									"top": 673,
+									"left": 848,
+									"top": 731,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
 									"alpha": -1.5707963267948966,
 									"distance": 15,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFU5sWWb8PkrWs="
 									},
 									"edgePosition": 1,
 									"underline": false,
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
-								},
+								}
+							],
+							"visible": true,
+							"enabled": true,
+							"lineColor": "#000000",
+							"fillColor": "#ffffff",
+							"fontColor": "#000000",
+							"font": "Arial;13;0",
+							"showShadow": true,
+							"containerChangeable": false,
+							"containerExtending": false,
+							"head": {
+								"$ref": "AAAAAAFU5rzTh6srG0I="
+							},
+							"tail": {
+								"$ref": "AAAAAAFU5sVbDML4liU="
+							},
+							"lineStyle": 1,
+							"points": "903:752;793:752",
+							"stereotypeDisplay": "label",
+							"showVisibility": true,
+							"showProperty": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFU5sWWb8Plkh8="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFU5sWWb8PmJxk="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFU5sWWb8Pn6Dc="
+							}
+						},
+						{
+							"_type": "UMLClassView",
+							"_id": "AAAAAAFWJ08Z/qhHDF4=",
+							"_parent": {
+								"$ref": "AAAAAAFU42fjDKtd44s="
+							},
+							"model": {
+								"$ref": "AAAAAAFWJ08Z/ahFxW0="
+							},
+							"subViews": [
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvtrzY=",
+									"_type": "UMLNameCompartmentView",
+									"_id": "AAAAAAFWJ08Z/qhIyrM=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ08Z/qhHDF4="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vm044="
+										"$ref": "AAAAAAFWJ08Z/ahFxW0="
 									},
-									"visible": false,
+									"subViews": [
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFWJ08Z/qhJdkU=",
+											"_parent": {
+												"$ref": "AAAAAAFWJ08Z/qhIyrM="
+											},
+											"visible": false,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": -96,
+											"top": -112,
+											"width": 0,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"horizontalAlignment": 2,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFWJ08Z/6hKK6k=",
+											"_parent": {
+												"$ref": "AAAAAAFWJ08Z/qhIyrM="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;1",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 349,
+											"top": 47,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "Simulation",
+											"horizontalAlignment": 2,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFWJ08Z/6hLiwM=",
+											"_parent": {
+												"$ref": "AAAAAAFWJ08Z/qhIyrM="
+											},
+											"visible": false,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": -96,
+											"top": -112,
+											"width": 73,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "(from Model)",
+											"horizontalAlignment": 2,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "LabelView",
+											"_id": "AAAAAAFWJ08Z/6hMjU8=",
+											"_parent": {
+												"$ref": "AAAAAAFWJ08Z/qhIyrM="
+											},
+											"visible": false,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": -96,
+											"top": -112,
+											"width": 0,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"horizontalAlignment": 1,
+											"verticalAlignment": 5
+										}
+									],
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -8543,31 +9052,92 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 546,
-									"top": 643,
-									"width": 0,
-									"height": 13,
+									"left": 344,
+									"top": 40,
+									"width": 169,
+									"height": 25,
 									"autoResize": false,
-									"alpha": 0.5235987755982988,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+									"stereotypeLabel": {
+										"$ref": "AAAAAAFWJ08Z/qhJdkU="
 									},
-									"edgePosition": 2,
-									"underline": false,
-									"horizontalAlignment": 2,
-									"verticalAlignment": 5
+									"nameLabel": {
+										"$ref": "AAAAAAFWJ08Z/6hKK6k="
+									},
+									"namespaceLabel": {
+										"$ref": "AAAAAAFWJ08Z/6hLiwM="
+									},
+									"propertyLabel": {
+										"$ref": "AAAAAAFWJ08Z/6hMjU8="
+									}
 								},
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvuazs=",
+									"_type": "UMLAttributeCompartmentView",
+									"_id": "AAAAAAFWJ08Z/6hNmrE=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ08Z/qhHDF4="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vm044="
+										"$ref": "AAAAAAFWJ08Z/ahFxW0="
 									},
-									"visible": false,
+									"subViews": [
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFWJ0/Feaq6uHM=",
+											"_parent": {
+												"$ref": "AAAAAAFWJ08Z/6hNmrE="
+											},
+											"model": {
+												"$ref": "AAAAAAFWJ0/FYaquLSw="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 349,
+											"top": 70,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+name: string",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										},
+										{
+											"_type": "UMLAttributeView",
+											"_id": "AAAAAAFWJ0/oe6tXRSc=",
+											"_parent": {
+												"$ref": "AAAAAAFWJ08Z/6hNmrE="
+											},
+											"model": {
+												"$ref": "AAAAAAFWJ0/oaatLEZ4="
+											},
+											"visible": true,
+											"enabled": true,
+											"lineColor": "#000000",
+											"fillColor": "#ffffff",
+											"fontColor": "#000000",
+											"font": "Arial;13;0",
+											"showShadow": true,
+											"containerChangeable": false,
+											"containerExtending": false,
+											"left": 349,
+											"top": 85,
+											"width": 159,
+											"height": 13,
+											"autoResize": false,
+											"underline": false,
+											"text": "+running: boolean",
+											"horizontalAlignment": 0,
+											"verticalAlignment": 5
+										}
+									],
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -8576,31 +9146,146 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 549,
-									"top": 629,
-									"width": 0,
-									"height": 13,
-									"autoResize": false,
-									"alpha": 0.7853981633974483,
-									"distance": 40,
-									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+									"left": 344,
+									"top": 65,
+									"width": 169,
+									"height": 38,
+									"autoResize": false
+								},
+								{
+									"_type": "UMLOperationCompartmentView",
+									"_id": "AAAAAAFWJ08Z/6hO23c=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ08Z/qhHDF4="
 									},
-									"edgePosition": 2,
-									"underline": false,
-									"horizontalAlignment": 2,
-									"verticalAlignment": 5
+									"model": {
+										"$ref": "AAAAAAFWJ08Z/ahFxW0="
+									},
+									"visible": true,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 344,
+									"top": 103,
+									"width": 169,
+									"height": 10,
+									"autoResize": false
+								},
+								{
+									"_type": "UMLReceptionCompartmentView",
+									"_id": "AAAAAAFWJ08Z/6hPVDg=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ08Z/qhHDF4="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ08Z/ahFxW0="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": -48,
+									"top": -56,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
 								},
+								{
+									"_type": "UMLTemplateParameterCompartmentView",
+									"_id": "AAAAAAFWJ08aAKhQrmk=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ08Z/qhHDF4="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ08Z/ahFxW0="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": -48,
+									"top": -56,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
+								}
+							],
+							"visible": true,
+							"enabled": true,
+							"lineColor": "#000000",
+							"fillColor": "#ffffff",
+							"fontColor": "#000000",
+							"font": "Arial;13;0",
+							"showShadow": true,
+							"containerChangeable": true,
+							"containerExtending": false,
+							"left": 344,
+							"top": 40,
+							"width": 169,
+							"height": 209,
+							"autoResize": false,
+							"stereotypeDisplay": "label",
+							"showVisibility": true,
+							"showNamespace": false,
+							"showProperty": true,
+							"showType": true,
+							"nameCompartment": {
+								"$ref": "AAAAAAFWJ08Z/qhIyrM="
+							},
+							"wordWrap": false,
+							"suppressAttributes": false,
+							"suppressOperations": false,
+							"suppressReceptions": true,
+							"showMultiplicity": true,
+							"showOperationSignature": true,
+							"attributeCompartment": {
+								"$ref": "AAAAAAFWJ08Z/6hNmrE="
+							},
+							"operationCompartment": {
+								"$ref": "AAAAAAFWJ08Z/6hO23c="
+							},
+							"receptionCompartment": {
+								"$ref": "AAAAAAFWJ08Z/6hPVDg="
+							},
+							"templateParameterCompartment": {
+								"$ref": "AAAAAAFWJ08aAKhQrmk="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFWJ09mrKlgqjo=",
+							"_parent": {
+								"$ref": "AAAAAAFU42fjDKtd44s="
+							},
+							"model": {
+								"$ref": "AAAAAAFWJ09mq6lcARU="
+							},
+							"subViews": [
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvvLzU=",
+									"_id": "AAAAAAFWJ09mralhvXo=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vm044="
+										"$ref": "AAAAAAFWJ09mq6lcARU="
 									},
-									"visible": true,
+									"visible": false,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -8609,32 +9294,31 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 539,
-									"top": 670,
-									"width": 7,
+									"left": 591,
+									"top": 153,
+									"width": 0,
 									"height": 13,
 									"autoResize": false,
-									"alpha": -0.5235987755982988,
-									"distance": 25,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
-									"edgePosition": 2,
+									"edgePosition": 1,
 									"underline": false,
-									"text": "1",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvws/s=",
+									"_id": "AAAAAAFWJ09mrali0LA=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vnmfI="
+										"$ref": "AAAAAAFWJ09mq6lcARU="
 									},
-									"visible": false,
+									"visible": null,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -8643,29 +9327,29 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 605,
-									"top": 643,
+									"left": 591,
+									"top": 168,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
-									"alpha": -0.5235987755982988,
+									"alpha": 1.5707963267948966,
 									"distance": 30,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
-									"edgePosition": 0,
+									"edgePosition": 1,
 									"underline": false,
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvx3EQ=",
+									"_id": "AAAAAAFWJ09mraljF4Q=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vnmfI="
+										"$ref": "AAAAAAFWJ09mq6lcARU="
 									},
 									"visible": false,
 									"enabled": true,
@@ -8676,29 +9360,29 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 602,
-									"top": 629,
+									"left": 592,
+									"top": 123,
 									"width": 0,
 									"height": 13,
 									"autoResize": false,
-									"alpha": -0.7853981633974483,
-									"distance": 40,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
-									"edgePosition": 0,
+									"edgePosition": 1,
 									"underline": false,
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5r0gVKvyg/I=",
+									"_id": "AAAAAAFWJ09mralkvzQ=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vnmfI="
+										"$ref": "AAAAAAFWJ09mq6ldcsE="
 									},
 									"visible": true,
 									"enabled": true,
@@ -8709,30 +9393,30 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 599,
-									"top": 670,
-									"width": 20,
+									"left": 600,
+									"top": 152,
+									"width": 67,
 									"height": 13,
 									"autoResize": false,
-									"alpha": 0.5235987755982988,
-									"distance": 25,
+									"alpha": 0.35299047319278376,
+									"distance": 40.496913462633174,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
-									"edgePosition": 0,
+									"edgePosition": 2,
 									"underline": false,
-									"text": "0..*",
+									"text": "+simulation",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFU5r0gVKvzWhw=",
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ09mrall5UI=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vm044="
+										"$ref": "AAAAAAFWJ09mq6ldcsE="
 									},
 									"visible": false,
 									"enabled": true,
@@ -8743,22 +9427,31 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 0,
-									"top": 0,
-									"width": 10,
-									"height": 10,
-									"autoResize": false
+									"left": 642,
+									"top": 166,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"edgePosition": 2,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
 								},
 								{
-									"_type": "UMLQualifierCompartmentView",
-									"_id": "AAAAAAFU5r0gVKv0DWY=",
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ09mrqlmYVE=",
 									"_parent": {
-										"$ref": "AAAAAAFU5r0gVKvpO9o="
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5r0gU6vnmfI="
+										"$ref": "AAAAAAFWJ09mq6ldcsE="
 									},
-									"visible": false,
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -8767,10 +9460,583 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 0,
-									"top": 0,
-									"width": 10,
-									"height": 10,
+									"left": 639,
+									"top": 125,
+									"width": 20,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"edgePosition": 2,
+									"underline": false,
+									"text": "0..*",
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ09mrqlnlp0=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ09mq6leAm4="
+									},
+									"visible": true,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 513,
+									"top": 152,
+									"width": 50,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"text": "+models",
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ09mrqlot58=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ09mq6leAm4="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 541,
+									"top": 166,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ09mrqlp1j0=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ09mq6leAm4="
+									},
+									"visible": true,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 531,
+									"top": 125,
+									"width": 7,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"text": "1",
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFWJ09mrqlqS08=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ09mq6ldcsE="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 0,
+									"top": 0,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFWJ09mrqlrras=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ09mrKlgqjo="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ09mq6leAm4="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 0,
+									"top": 0,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
+								}
+							],
+							"visible": true,
+							"enabled": true,
+							"lineColor": "#000000",
+							"fillColor": "#ffffff",
+							"fontColor": "#000000",
+							"font": "Arial;13;0",
+							"showShadow": true,
+							"containerChangeable": false,
+							"containerExtending": false,
+							"head": {
+								"$ref": "AAAAAAFWJ08Z/qhHDF4="
+							},
+							"tail": {
+								"$ref": "AAAAAAFU5rTOT56Y0MM="
+							},
+							"lineStyle": 1,
+							"points": "671:144;513:144",
+							"stereotypeDisplay": "label",
+							"showVisibility": true,
+							"showProperty": true,
+							"nameLabel": {
+								"$ref": "AAAAAAFWJ09mralhvXo="
+							},
+							"stereotypeLabel": {
+								"$ref": "AAAAAAFWJ09mrali0LA="
+							},
+							"propertyLabel": {
+								"$ref": "AAAAAAFWJ09mraljF4Q="
+							},
+							"showMultiplicity": true,
+							"showType": true,
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFWJ09mralkvzQ="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFWJ09mrall5UI="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFWJ09mrqlmYVE="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFWJ09mrqlnlp0="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFWJ09mrqlot58="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFWJ09mrqlp1j0="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFWJ09mrqlqS08="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFWJ09mrqlrras="
+							}
+						},
+						{
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFWJ096A6nogC0=",
+							"_parent": {
+								"$ref": "AAAAAAFU42fjDKtd44s="
+							},
+							"model": {
+								"$ref": "AAAAAAFWJ096Aqnkjtk="
+							},
+							"subViews": [
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6npKJw=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096Aqnkjtk="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 265,
+									"top": 264,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6nqytk=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096Aqnkjtk="
+									},
+									"visible": null,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 255,
+									"top": 253,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6nrFos=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096Aqnkjtk="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 286,
+									"top": 287,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6nsUDo=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnleE8="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 218,
+									"top": 308,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 2,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6ntgkM=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnleE8="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 210,
+									"top": 297,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 2,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6nuBsE=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnleE8="
+									},
+									"visible": true,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 230,
+									"top": 331,
+									"width": 7,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 2,
+									"underline": false,
+									"text": "1",
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6nvOnM=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnmpsM="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 313,
+									"top": 221,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6nwDHU=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnmpsM="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 303,
+									"top": 213,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ096A6nxO6E=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnmpsM="
+									},
+									"visible": true,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 325,
+									"top": 238,
+									"width": 20,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"text": "0..*",
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFWJ096A6nyQno=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnleE8="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 0,
+									"top": 0,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
+								},
+								{
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFWJ096BKnzFto=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ096A6nogC0="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ096AqnmpsM="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 0,
+									"top": 0,
+									"width": 10,
+									"height": 10,
 									"autoResize": false
 								}
 							],
@@ -8784,172 +10050,171 @@
 							"containerChangeable": false,
 							"containerExtending": false,
 							"head": {
-								"$ref": "AAAAAAFU5rzTh6srG0I="
+								"$ref": "AAAAAAFWJ08Z/qhHDF4="
 							},
 							"tail": {
-								"$ref": "AAAAAAFU5rum1KgKEBk="
+								"$ref": "AAAAAAFU42gTNqutGVA="
 							},
 							"lineStyle": 1,
-							"points": "521:664;631:664",
+							"points": "209:343;343:221",
 							"stereotypeDisplay": "label",
 							"showVisibility": true,
 							"showProperty": true,
 							"nameLabel": {
-								"$ref": "AAAAAAFU5r0gVKvqVAc="
+								"$ref": "AAAAAAFWJ096A6npKJw="
 							},
 							"stereotypeLabel": {
-								"$ref": "AAAAAAFU5r0gVKvr2Fc="
+								"$ref": "AAAAAAFWJ096A6nqytk="
 							},
 							"propertyLabel": {
-								"$ref": "AAAAAAFU5r0gVKvsMWQ="
+								"$ref": "AAAAAAFWJ096A6nrFos="
 							},
 							"showMultiplicity": true,
 							"showType": true,
 							"tailRoleNameLabel": {
-								"$ref": "AAAAAAFU5r0gVKvtrzY="
+								"$ref": "AAAAAAFWJ096A6nsUDo="
 							},
 							"tailPropertyLabel": {
-								"$ref": "AAAAAAFU5r0gVKvuazs="
+								"$ref": "AAAAAAFWJ096A6ntgkM="
 							},
 							"tailMultiplicityLabel": {
-								"$ref": "AAAAAAFU5r0gVKvvLzU="
+								"$ref": "AAAAAAFWJ096A6nuBsE="
 							},
 							"headRoleNameLabel": {
-								"$ref": "AAAAAAFU5r0gVKvws/s="
+								"$ref": "AAAAAAFWJ096A6nvOnM="
 							},
 							"headPropertyLabel": {
-								"$ref": "AAAAAAFU5r0gVKvx3EQ="
+								"$ref": "AAAAAAFWJ096A6nwDHU="
 							},
 							"headMultiplicityLabel": {
-								"$ref": "AAAAAAFU5r0gVKvyg/I="
+								"$ref": "AAAAAAFWJ096A6nxO6E="
 							},
 							"tailQualifiersCompartment": {
-								"$ref": "AAAAAAFU5r0gVKvzWhw="
+								"$ref": "AAAAAAFWJ096A6nyQno="
 							},
 							"headQualifiersCompartment": {
-								"$ref": "AAAAAAFU5r0gVKv0DWY="
+								"$ref": "AAAAAAFWJ096BKnzFto="
 							}
 						},
 						{
-							"_type": "UMLClassView",
-							"_id": "AAAAAAFU5sVbDML4liU=",
+							"_type": "UMLAssociationView",
+							"_id": "AAAAAAFWJ1Emha9yV1o=",
 							"_parent": {
 								"$ref": "AAAAAAFU42fjDKtd44s="
 							},
 							"model": {
-								"$ref": "AAAAAAFU5sVbCsL2w9g="
+								"$ref": "AAAAAAFWJ1EmhK9uMYs="
 							},
 							"subViews": [
 								{
-									"_type": "UMLNameCompartmentView",
-									"_id": "AAAAAAFU5sVbDML5M8k=",
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emha9zRGs=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sVbDML4liU="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sVbCsL2w9g="
+										"$ref": "AAAAAAFWJ1EmhK9uMYs="
 									},
-									"subViews": [
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFU5sVbDcL6iAY=",
-											"_parent": {
-												"$ref": "AAAAAAFU5sVbDML5M8k="
-											},
-											"visible": false,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 32,
-											"top": -144,
-											"width": 0,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"horizontalAlignment": 2,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFU5sVbDcL7QrY=",
-											"_parent": {
-												"$ref": "AAAAAAFU5sVbDML5M8k="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;1",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 917,
-											"top": 559,
-											"width": 167,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "Chart",
-											"horizontalAlignment": 2,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFU5sVbDcL85uM=",
-											"_parent": {
-												"$ref": "AAAAAAFU5sVbDML5M8k="
-											},
-											"visible": false,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 32,
-											"top": -144,
-											"width": 80.49462890625,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "(from Model)",
-											"horizontalAlignment": 2,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "LabelView",
-											"_id": "AAAAAAFU5sVbDcL9g5w=",
-											"_parent": {
-												"$ref": "AAAAAAFU5sVbDML5M8k="
-											},
-											"visible": false,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 32,
-											"top": -144,
-											"width": 0,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"horizontalAlignment": 1,
-											"verticalAlignment": 5
-										}
-									],
-									"visible": true,
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 442,
+									"top": 269,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emhq90seY=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ1EmhK9uMYs="
+									},
+									"visible": null,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 457,
+									"top": 269,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 1.5707963267948966,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emhq91RTk=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ1EmhK9uMYs="
+									},
+									"visible": false,
+									"enabled": true,
+									"lineColor": "#000000",
+									"fillColor": "#ffffff",
+									"fontColor": "#000000",
+									"font": "Arial;13;0",
+									"showShadow": true,
+									"containerChangeable": false,
+									"containerExtending": false,
+									"left": 413,
+									"top": 270,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -1.5707963267948966,
+									"distance": 15,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"edgePosition": 1,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
+								{
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emhq92OzM=",
+									"_parent": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"model": {
+										"$ref": "AAAAAAFWJ1EmhK9vk+s="
+									},
+									"visible": false,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -8958,120 +10223,31 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 912,
-									"top": 552,
-									"width": 177,
-									"height": 25,
+									"left": 443,
+									"top": 268,
+									"width": 0,
+									"height": 13,
 									"autoResize": false,
-									"stereotypeLabel": {
-										"$ref": "AAAAAAFU5sVbDcL6iAY="
-									},
-									"nameLabel": {
-										"$ref": "AAAAAAFU5sVbDcL7QrY="
-									},
-									"namespaceLabel": {
-										"$ref": "AAAAAAFU5sVbDcL85uM="
+									"alpha": 0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
-									"propertyLabel": {
-										"$ref": "AAAAAAFU5sVbDcL9g5w="
-									}
+									"edgePosition": 2,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
 								},
 								{
-									"_type": "UMLAttributeCompartmentView",
-									"_id": "AAAAAAFU5sVbDsL+Ynw=",
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emhq93pqA=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sVbDML4liU="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sVbCsL2w9g="
+										"$ref": "AAAAAAFWJ1EmhK9vk+s="
 									},
-									"subViews": [
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5sWyasR60tc=",
-											"_parent": {
-												"$ref": "AAAAAAFU5sVbDsL+Ynw="
-											},
-											"model": {
-												"$ref": "AAAAAAFU5sWyNsRrzAE="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 917,
-											"top": 582,
-											"width": 167,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "+units: string[2]",
-											"horizontalAlignment": 0,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5sYCLcThmgY=",
-											"_parent": {
-												"$ref": "AAAAAAFU5sVbDsL+Ynw="
-											},
-											"model": {
-												"$ref": "AAAAAAFU5sYCAMTSBn8="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 917,
-											"top": 597,
-											"width": 167,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "+labels: string[2]",
-											"horizontalAlignment": 0,
-											"verticalAlignment": 5
-										},
-										{
-											"_type": "UMLAttributeView",
-											"_id": "AAAAAAFU5sZrk8XrUqc=",
-											"_parent": {
-												"$ref": "AAAAAAFU5sVbDsL+Ynw="
-											},
-											"model": {
-												"$ref": "AAAAAAFU5sZrXsXczjI="
-											},
-											"visible": true,
-											"enabled": true,
-											"lineColor": "#000000",
-											"fillColor": "#ffffff",
-											"fontColor": "#000000",
-											"font": "Arial;13;0",
-											"showShadow": true,
-											"containerChangeable": false,
-											"containerExtending": false,
-											"left": 917,
-											"top": 612,
-											"width": 167,
-											"height": 13,
-											"autoResize": false,
-											"underline": false,
-											"text": "+lineColor: color",
-											"horizontalAlignment": 0,
-											"verticalAlignment": 5
-										}
-									],
-									"visible": true,
+									"visible": false,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -9080,20 +10256,29 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 912,
-									"top": 577,
-									"width": 177,
-									"height": 53,
-									"autoResize": false
+									"left": 456,
+									"top": 271,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": 0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"edgePosition": 2,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
 								},
 								{
-									"_type": "UMLOperationCompartmentView",
-									"_id": "AAAAAAFU5sVbDsL/2a4=",
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emhq94kyE=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sVbDML4liU="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sVbCsL2w9g="
+										"$ref": "AAAAAAFWJ1EmhK9vk+s="
 									},
 									"visible": true,
 									"enabled": true,
@@ -9104,20 +10289,30 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 912,
-									"top": 630,
-									"width": 177,
-									"height": 10,
-									"autoResize": false
+									"left": 412,
+									"top": 264,
+									"width": 7,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.5235987755982988,
+									"distance": 25,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"edgePosition": 2,
+									"underline": false,
+									"text": "1",
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
 								},
 								{
-									"_type": "UMLReceptionCompartmentView",
-									"_id": "AAAAAAFU5sVbEMMA2GM=",
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emhq95FPY=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sVbDML4liU="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sVbCsL2w9g="
+										"$ref": "AAAAAAFWJ1EmhK9wRts="
 									},
 									"visible": false,
 									"enabled": true,
@@ -9128,20 +10323,29 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 16,
-									"top": -72,
-									"width": 10,
-									"height": 10,
-									"autoResize": false
+									"left": 443,
+									"top": 271,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.5235987755982988,
+									"distance": 30,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
 								},
 								{
-									"_type": "UMLTemplateParameterCompartmentView",
-									"_id": "AAAAAAFU5sVbEMMBrzQ=",
+									"_type": "EdgeLabelView",
+									"_id": "AAAAAAFWJ1Emhq96VDw=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sVbDML4liU="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sVbCsL2w9g="
+										"$ref": "AAAAAAFWJ1EmhK9wRts="
 									},
 									"visible": false,
 									"enabled": true,
@@ -9152,74 +10356,31 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 16,
-									"top": -72,
-									"width": 10,
-									"height": 10,
-									"autoResize": false
-								}
-							],
-							"visible": true,
-							"enabled": true,
-							"lineColor": "#000000",
-							"fillColor": "#ffffff",
-							"fontColor": "#000000",
-							"font": "Arial;13;0",
-							"showShadow": true,
-							"containerChangeable": true,
-							"containerExtending": false,
-							"left": 912,
-							"top": 552,
-							"width": 177,
-							"height": 225,
-							"autoResize": false,
-							"stereotypeDisplay": "label",
-							"showVisibility": true,
-							"showNamespace": false,
-							"showProperty": true,
-							"showType": true,
-							"nameCompartment": {
-								"$ref": "AAAAAAFU5sVbDML5M8k="
-							},
-							"wordWrap": false,
-							"suppressAttributes": false,
-							"suppressOperations": false,
-							"suppressReceptions": true,
-							"showMultiplicity": true,
-							"showOperationSignature": true,
-							"attributeCompartment": {
-								"$ref": "AAAAAAFU5sVbDsL+Ynw="
-							},
-							"operationCompartment": {
-								"$ref": "AAAAAAFU5sVbDsL/2a4="
-							},
-							"receptionCompartment": {
-								"$ref": "AAAAAAFU5sVbEMMA2GM="
-							},
-							"templateParameterCompartment": {
-								"$ref": "AAAAAAFU5sVbEMMBrzQ="
-							}
-						},
-						{
-							"_type": "UMLGeneralizationView",
-							"_id": "AAAAAAFU5sWWb8PkrWs=",
-							"_parent": {
-								"$ref": "AAAAAAFU42fjDKtd44s="
-							},
-							"model": {
-								"$ref": "AAAAAAFU5sWWbsPi7Fo="
-							},
-							"subViews": [
+									"left": 456,
+									"top": 268,
+									"width": 0,
+									"height": 13,
+									"autoResize": false,
+									"alpha": -0.7853981633974483,
+									"distance": 40,
+									"hostEdge": {
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
+									},
+									"edgePosition": 0,
+									"underline": false,
+									"horizontalAlignment": 2,
+									"verticalAlignment": 5
+								},
 								{
 									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5sWWb8Plkh8=",
+									"_id": "AAAAAAFWJ1Emhq97lJQ=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sWWb8PkrWs="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sWWbsPi7Fo="
+										"$ref": "AAAAAAFWJ1EmhK9wRts="
 									},
-									"visible": false,
+									"visible": true,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -9228,31 +10389,32 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 855,
-									"top": 673,
-									"width": 0,
+									"left": 405,
+									"top": 275,
+									"width": 20,
 									"height": 13,
 									"autoResize": false,
-									"alpha": 1.5707963267948966,
-									"distance": 15,
+									"alpha": 0.5235987755982988,
+									"distance": 25,
 									"hostEdge": {
-										"$ref": "AAAAAAFU5sWWb8PkrWs="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
-									"edgePosition": 1,
+									"edgePosition": 0,
 									"underline": false,
+									"text": "0..*",
 									"horizontalAlignment": 2,
 									"verticalAlignment": 5
 								},
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5sWWb8PmJxk=",
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFWJ1Emhq98b5A=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sWWb8PkrWs="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sWWbsPi7Fo="
+										"$ref": "AAAAAAFWJ1EmhK9vk+s="
 									},
-									"visible": null,
+									"visible": false,
 									"enabled": true,
 									"lineColor": "#000000",
 									"fillColor": "#ffffff",
@@ -9261,29 +10423,20 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 855,
-									"top": 688,
-									"width": 0,
-									"height": 13,
-									"autoResize": false,
-									"alpha": 1.5707963267948966,
-									"distance": 30,
-									"hostEdge": {
-										"$ref": "AAAAAAFU5sWWb8PkrWs="
-									},
-									"edgePosition": 1,
-									"underline": false,
-									"horizontalAlignment": 2,
-									"verticalAlignment": 5
+									"left": 0,
+									"top": 0,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
 								},
 								{
-									"_type": "EdgeLabelView",
-									"_id": "AAAAAAFU5sWWb8Pn6Dc=",
+									"_type": "UMLQualifierCompartmentView",
+									"_id": "AAAAAAFWJ1Emhq99Xv0=",
 									"_parent": {
-										"$ref": "AAAAAAFU5sWWb8PkrWs="
+										"$ref": "AAAAAAFWJ1Emha9yV1o="
 									},
 									"model": {
-										"$ref": "AAAAAAFU5sWWbsPi7Fo="
+										"$ref": "AAAAAAFWJ1EmhK9wRts="
 									},
 									"visible": false,
 									"enabled": true,
@@ -9294,20 +10447,11 @@
 									"showShadow": true,
 									"containerChangeable": false,
 									"containerExtending": false,
-									"left": 856,
-									"top": 643,
-									"width": 0,
-									"height": 13,
-									"autoResize": false,
-									"alpha": -1.5707963267948966,
-									"distance": 15,
-									"hostEdge": {
-										"$ref": "AAAAAAFU5sWWb8PkrWs="
-									},
-									"edgePosition": 1,
-									"underline": false,
-									"horizontalAlignment": 2,
-									"verticalAlignment": 5
+									"left": 0,
+									"top": 0,
+									"width": 10,
+									"height": 10,
+									"autoResize": false
 								}
 							],
 							"visible": true,
@@ -9320,24 +10464,50 @@
 							"containerChangeable": false,
 							"containerExtending": false,
 							"head": {
-								"$ref": "AAAAAAFU5rzTh6srG0I="
+								"$ref": "AAAAAAFU42p81qvwoZI="
 							},
 							"tail": {
-								"$ref": "AAAAAAFU5sVbDML4liU="
+								"$ref": "AAAAAAFWJ08Z/qhHDF4="
 							},
 							"lineStyle": 1,
-							"points": "911:664;801:664",
+							"points": "428:249;428:303",
 							"stereotypeDisplay": "label",
 							"showVisibility": true,
 							"showProperty": true,
 							"nameLabel": {
-								"$ref": "AAAAAAFU5sWWb8Plkh8="
+								"$ref": "AAAAAAFWJ1Emha9zRGs="
 							},
 							"stereotypeLabel": {
-								"$ref": "AAAAAAFU5sWWb8PmJxk="
+								"$ref": "AAAAAAFWJ1Emhq90seY="
 							},
 							"propertyLabel": {
-								"$ref": "AAAAAAFU5sWWb8Pn6Dc="
+								"$ref": "AAAAAAFWJ1Emhq91RTk="
+							},
+							"showMultiplicity": true,
+							"showType": true,
+							"tailRoleNameLabel": {
+								"$ref": "AAAAAAFWJ1Emhq92OzM="
+							},
+							"tailPropertyLabel": {
+								"$ref": "AAAAAAFWJ1Emhq93pqA="
+							},
+							"tailMultiplicityLabel": {
+								"$ref": "AAAAAAFWJ1Emhq94kyE="
+							},
+							"headRoleNameLabel": {
+								"$ref": "AAAAAAFWJ1Emhq95FPY="
+							},
+							"headPropertyLabel": {
+								"$ref": "AAAAAAFWJ1Emhq96VDw="
+							},
+							"headMultiplicityLabel": {
+								"$ref": "AAAAAAFWJ1Emhq97lJQ="
+							},
+							"tailQualifiersCompartment": {
+								"$ref": "AAAAAAFWJ1Emhq98b5A="
+							},
+							"headQualifiersCompartment": {
+								"$ref": "AAAAAAFWJ1Emhq99Xv0="
 							}
 						}
 					]
@@ -9445,6 +10615,53 @@
 							},
 							"visibility": "public",
 							"isDerived": false
+						},
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFWJ096Aqnkjtk=",
+							"_parent": {
+								"$ref": "AAAAAAFU42gTNaurUj0="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFWJ096AqnleE8=",
+								"_parent": {
+									"$ref": "AAAAAAFWJ096Aqnkjtk="
+								},
+								"reference": {
+									"$ref": "AAAAAAFU42gTNaurUj0="
+								},
+								"visibility": "public",
+								"navigable": true,
+								"aggregation": "none",
+								"multiplicity": "1",
+								"isReadOnly": false,
+								"isOrdered": false,
+								"isUnique": false,
+								"isDerived": false,
+								"isID": false
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFWJ096AqnmpsM=",
+								"_parent": {
+									"$ref": "AAAAAAFWJ096Aqnkjtk="
+								},
+								"reference": {
+									"$ref": "AAAAAAFWJ08Z/ahFxW0="
+								},
+								"visibility": "public",
+								"navigable": true,
+								"aggregation": "none",
+								"multiplicity": "0..*",
+								"isReadOnly": false,
+								"isOrdered": false,
+								"isUnique": false,
+								"isDerived": false,
+								"isID": false
+							},
+							"visibility": "public",
+							"isDerived": false
 						}
 					],
 					"visibility": "public",
@@ -9700,7 +10917,58 @@
 					"_parent": {
 						"$ref": "AAAAAAFF+qBWK6M3Z8Y="
 					},
-					"name": "Model",
+					"name": "SimulationModel",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFWJ09mq6lcARU=",
+							"_parent": {
+								"$ref": "AAAAAAFU5rTOTp6WJS4="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFWJ09mq6ldcsE=",
+								"_parent": {
+									"$ref": "AAAAAAFWJ09mq6lcARU="
+								},
+								"name": "simulation",
+								"reference": {
+									"$ref": "AAAAAAFU5rTOTp6WJS4="
+								},
+								"visibility": "public",
+								"navigable": true,
+								"aggregation": "none",
+								"multiplicity": "0..*",
+								"isReadOnly": false,
+								"isOrdered": false,
+								"isUnique": false,
+								"isDerived": false,
+								"isID": false
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFWJ09mq6leAm4=",
+								"_parent": {
+									"$ref": "AAAAAAFWJ09mq6lcARU="
+								},
+								"name": "models",
+								"reference": {
+									"$ref": "AAAAAAFWJ08Z/ahFxW0="
+								},
+								"visibility": "public",
+								"navigable": true,
+								"aggregation": "none",
+								"multiplicity": "1",
+								"isReadOnly": false,
+								"isOrdered": false,
+								"isUnique": false,
+								"isDerived": false,
+								"isID": false
+							},
+							"visibility": "public",
+							"isDerived": false
+						}
+					],
 					"visibility": "public",
 					"attributes": [
 						{
@@ -10153,6 +11421,106 @@
 					"isFinalSpecialization": false,
 					"isLeaf": false,
 					"isActive": false
+				},
+				{
+					"_type": "UMLClass",
+					"_id": "AAAAAAFWJ08Z/ahFxW0=",
+					"_parent": {
+						"$ref": "AAAAAAFF+qBWK6M3Z8Y="
+					},
+					"name": "Simulation",
+					"ownedElements": [
+						{
+							"_type": "UMLAssociation",
+							"_id": "AAAAAAFWJ1EmhK9uMYs=",
+							"_parent": {
+								"$ref": "AAAAAAFWJ08Z/ahFxW0="
+							},
+							"end1": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFWJ1EmhK9vk+s=",
+								"_parent": {
+									"$ref": "AAAAAAFWJ1EmhK9uMYs="
+								},
+								"reference": {
+									"$ref": "AAAAAAFWJ08Z/ahFxW0="
+								},
+								"visibility": "public",
+								"navigable": true,
+								"aggregation": "none",
+								"multiplicity": "1",
+								"isReadOnly": false,
+								"isOrdered": false,
+								"isUnique": false,
+								"isDerived": false,
+								"isID": false
+							},
+							"end2": {
+								"_type": "UMLAssociationEnd",
+								"_id": "AAAAAAFWJ1EmhK9wRts=",
+								"_parent": {
+									"$ref": "AAAAAAFWJ1EmhK9uMYs="
+								},
+								"reference": {
+									"$ref": "AAAAAAFU42p81qvu+N0="
+								},
+								"visibility": "public",
+								"navigable": true,
+								"aggregation": "none",
+								"multiplicity": "0..*",
+								"isReadOnly": false,
+								"isOrdered": false,
+								"isUnique": false,
+								"isDerived": false,
+								"isID": false
+							},
+							"visibility": "public",
+							"isDerived": false
+						}
+					],
+					"visibility": "public",
+					"attributes": [
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFWJ0/FYaquLSw=",
+							"_parent": {
+								"$ref": "AAAAAAFWJ08Z/ahFxW0="
+							},
+							"name": "name",
+							"visibility": "public",
+							"isStatic": false,
+							"isLeaf": false,
+							"type": "string",
+							"isReadOnly": false,
+							"isOrdered": false,
+							"isUnique": false,
+							"isDerived": false,
+							"aggregation": "none",
+							"isID": false
+						},
+						{
+							"_type": "UMLAttribute",
+							"_id": "AAAAAAFWJ0/oaatLEZ4=",
+							"_parent": {
+								"$ref": "AAAAAAFWJ08Z/ahFxW0="
+							},
+							"name": "running",
+							"visibility": "public",
+							"isStatic": false,
+							"isLeaf": false,
+							"type": "boolean",
+							"isReadOnly": false,
+							"isOrdered": false,
+							"isUnique": false,
+							"isDerived": false,
+							"aggregation": "none",
+							"isID": false
+						}
+					],
+					"isAbstract": false,
+					"isFinalSpecialization": false,
+					"isLeaf": false,
+					"isActive": false
 				}
 			],
 			"visibility": "public"
diff --git a/models/project.js b/models/project.js
index 0917855..ae3a922 100644
--- a/models/project.js
+++ b/models/project.js
@@ -18,7 +18,8 @@ var Schema = mongoose.Schema;
 var projectSchema = new Schema({
   name: { type: String, required: true },
   owner: { type: Schema.Types.ObjectId, ref: 'User', required: true },
-  visualizations: [{ type: Schema.Types.ObjectId, ref: 'Visualization' }]
+  visualizations: [{ type: Schema.Types.ObjectId, ref: 'Visualization', default: [] }],
+  simulation: [{ type: Schema.Types.ObjectId, ref: 'Simulation' }]
 });
 
 projectSchema.pre('remove', function(callback) {
diff --git a/models/simulation.js b/models/simulation.js
new file mode 100644
index 0000000..7957cc2
--- /dev/null
+++ b/models/simulation.js
@@ -0,0 +1,45 @@
+/**
+ * File: simulation.js
+ * Author: Markus Grigull <mgrigull@eonerc.rwth-aachen.de>
+ * Date: 26.07.2016
+ * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC
+ *   This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential.
+ *   Unauthorized copying of this file, via any medium is strictly prohibited.
+ **********************************************************************************/
+
+ // include
+ var mongoose = require('mongoose');
+
+ var SimulationModel = require('./simulationModel');
+
+ var Schema = mongoose.Schema;
+
+ // simulation model
+ var simulationSchema = new Schema({
+   name: { type: String, required: true },
+   running: { type: Boolean, default: false },
+   owner: { type: Schema.Types.ObjectId, ref: 'User' },
+   models: [{ type: Schema.Types.ObjectId, ref: 'SimulationModel', default: [] }],
+   projects: [{ type: Schema.Types.ObjectId, ref: 'Project', default: [] }]
+ });
+
+ simulationSchema.pre('remove', function(callback) {
+   // delete all models belonging to this project
+   this.models.forEach(function(id) {
+     SimulationModel.findOne({ _id: id }, function(err, model) {
+       if (err) {
+         return console.log(err);
+       }
+
+       model.remove(function(err) {
+         if (err) {
+           return console.log(err);
+         }
+       });
+     });
+   });
+
+   callback();
+ });
+
+ module.exports = mongoose.model('Simulation', simulationSchema);
diff --git a/models/simulationModel.js b/models/simulationModel.js
index 36509bb..0f25d10 100644
--- a/models/simulationModel.js
+++ b/models/simulationModel.js
@@ -15,9 +15,10 @@ var Schema = mongoose.Schema;
 // simulation model model
 var simulationModelSchema = new Schema({
   name: { type: String, required: true },
-  running: { type: Boolean, default: false },
-  projects: [{ type: Schema.Types.ObjectId, ref: 'Project' }],
-  owner: { type: Schema.Types.ObjectId, ref: 'User' }
+  simulator: { type: Number, required: true },
+  length: { type: Number, default: 1 },
+  mapping: [{ type: String, default: [] }],
+  simulation: { type: Schema.Types.ObjectId, ref: 'Simulation' }
 });
 
 module.exports = mongoose.model('SimulationModel', simulationModelSchema);
diff --git a/models/user.js b/models/user.js
index f317308..153a4a0 100644
--- a/models/user.js
+++ b/models/user.js
@@ -12,7 +12,7 @@ var mongoose = require('mongoose');
 var bcrypt = require('bcrypt-nodejs');
 
 var Project = require('./project');
-var SimulationModel = require('./simulationModel');
+var Simulation = require('./simulation');
 
 var Schema = mongoose.Schema;
 
@@ -23,7 +23,7 @@ var userSchema = new Schema({
   adminLevel: { type: Number, default: 0 },
   projects: [{ type: Schema.Types.ObjectId, ref: 'Project', default: [] }],
   mail: { type: String, default: "" },
-  simulationModel: [{ type: Schema.Types.ObjectId, ref: 'Model', default: [] }]
+  simulations: [{ type: Schema.Types.ObjectId, ref: 'Simulation', default: [] }]
 });
 
 userSchema.methods.verifyPassword = function(password, callback) {
@@ -83,14 +83,14 @@ userSchema.pre('remove', function(callback) {
     });
   });
 
-  // delete all models belonging to this user
-  this.simulationModels.forEach(function(id) {
-    SimulationModel.findOne({ _id: id }, function(err, model) {
+  // delete all simulations belonging to this user
+  this.simulations.forEach(function(id) {
+    Simulation.findOne({ _id: id }, function(err, simulation) {
       if (err) {
         return console.log(err);
       }
 
-      model.remove(function(err) {
+      simulation.remove(function(err) {
         if (err) {
           return console.log(err);
         }
diff --git a/routes/simulationModels.js b/routes/simulationModels.js
index 16f2540..d55f916 100644
--- a/routes/simulationModels.js
+++ b/routes/simulationModels.js
@@ -14,7 +14,7 @@ var auth = require('../auth');
 
 // models
 var SimulationModel = require('../models/simulationModel');
-var User = require('../models/user');
+var Simulation = require('../models/simulation');
 
 // create router
 var router = express.Router();
@@ -46,15 +46,15 @@ router.post('/simulationModels', function(req, res) {
     res.send({ simulationModel: model });
   });
 
-  // add model to user
-  User.findOne({ _id: model.owner }, function(err, user) {
+  // add model to simulation
+  Simulation.findOne({ _id: model.simulation }, function(err, simulation) {
     if (err) {
       return console.log(err);
     }
 
-    user.simulationModels.push(model._id);
+    simulation.models.push(model._id);
 
-    user.save(function(err) {
+    simulation.save(function(err) {
       if (err) {
         console.log(err);
       }
@@ -101,20 +101,20 @@ router.delete('/simulationModels/:id', function(req, res) {
       return res.send(err);
     }
 
-    // remove from owner's list
-    User.findOne({ _id: model.owner }, function(err, user) {
+    // remove from simulation's list
+    Simulation.findOne({ _id: model.simulation }, function(err, simulation) {
       if (err) {
         return console.log(err);
       }
 
-      for (var i = 0; user.simulationModels.length; i++) {
-        var id = String(user.simulationModels[i]);
+      for (var i = 0; simulation.models.length; i++) {
+        var id = String(simulation.models[i]);
         if (id == model._id) {
-          user.simulationModels.splice(i, 1);
+          simulation.models.splice(i, 1);
         }
       }
 
-      user.save(function(err) {
+      simulation.save(function(err) {
         if (err) {
           return console.log(err);
         }
diff --git a/routes/simulations.js b/routes/simulations.js
new file mode 100644
index 0000000..911cfa4
--- /dev/null
+++ b/routes/simulations.js
@@ -0,0 +1,134 @@
+/**
+ * File: simulations.js
+ * Author: Markus Grigull <mgrigull@eonerc.rwth-aachen.de>
+ * Date: 26.07.2016
+ * Copyright: 2016, Institute for Automation of Complex Power Systems, EONERC
+ *   This file is part of VILLASweb. All Rights Reserved. Proprietary and confidential.
+ *   Unauthorized copying of this file, via any medium is strictly prohibited.
+ **********************************************************************************/
+
+// include
+var express = require('express');
+
+var auth = require('../auth');
+
+// models
+var Simulation = require('../models/simulation');
+var User = require('../models/user');
+
+// create router
+var router = express.Router();
+
+// all model routes need authentication
+router.use('/simulations', auth.validateToken);
+
+// routes
+router.get('/simulations', function(req, res) {
+  // get all simulations
+  Simulation.find(function(err, simulations) {
+    if (err) {
+      return res.send(err);
+    }
+
+    res.send({ simulations: simulations });
+  });
+});
+
+router.post('/simulations', function(req, res) {
+  // create new simulation
+  var simulation = new Simulation(req.body.simulation);
+
+  simulation.save(function(err) {
+    if (err) {
+      return res.send(err);
+    }
+
+    res.send({ simulation: simulation });
+  });
+
+  // add simulation to user
+  User.findOne({ _id: simulation.owner }, function(err, user) {
+    if (err) {
+      return console.log(err);
+    }
+
+    user.simulations.push(simulation._id);
+
+    user.save(function(err) {
+      if (err) {
+        console.log(err);
+      }
+    });
+  });
+});
+
+router.put('/simulations/:id', function(req, res) {
+  // get simulation
+  Simulation.findOne({ _id: req.params.id }, function(err, simulation) {
+    if (err) {
+      return res.send(err);
+    }
+
+    // update all properties
+    for (property in req.body.simulation) {
+      simulation[property] = req.body.simulation[property];
+    }
+
+    // save the changes
+    simulation.save(function(err) {
+      if (err) {
+        return res.send(err);
+      }
+
+      res.send({ simulation: simulation });
+    });
+  });
+});
+
+router.get('/simulations/:id', function(req, res) {
+  Simulation.findOne({ _id: req.params.id }, function(err, simulation) {
+    if (err) {
+      return res.send(err);
+    }
+
+    res.send({ simulation: simulation });
+  });
+});
+
+router.delete('/simulations/:id', function(req, res) {
+  Simulation.findOne({ _id: req.params.id }, function(err, simulation) {
+    if (err) {
+      return res.send(err);
+    }
+
+    // remove from owner's list
+    User.findOne({ _id: simulation.owner }, function(err, user) {
+      if (err) {
+        return console.log(err);
+      }
+
+      for (var i = 0; user.simulations.length; i++) {
+        var id = String(user.simulations[i]);
+        if (id == simulation._id) {
+          user.simulations.splice(i, 1);
+        }
+      }
+
+      user.save(function(err) {
+        if (err) {
+          return console.log(err);
+        }
+      });
+    });
+
+    simulation.remove(function(err) {
+      if (err) {
+        return res.send(err);
+      }
+
+      res.send({});
+    });
+  });
+});
+
+module.exports = router;
diff --git a/server.js b/server.js
index 6583c23..b2a2998 100644
--- a/server.js
+++ b/server.js
@@ -21,6 +21,7 @@ var users = require('./routes/users');
 var projects = require('./routes/projects');
 var visualizations = require('./routes/visualizations');
 var plots = require('./routes/plots');
+var simulations = require('./routes/simulations');
 var simulationModels = require('./routes/simulationModels');
 
 var User = require('./models/user');
@@ -42,6 +43,7 @@ app.use('/api/v1', users);
 app.use('/api/v1', projects);
 app.use('/api/v1', visualizations);
 app.use('/api/v1', plots);
+app.use('/api/v1', simulations);
 app.use('/api/v1', simulationModels);
 
 // catch 404 and forward to error handler
-- 
GitLab