diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..ea80e270a66f9005a475588276e9a341ad020841
Binary files /dev/null and b/.DS_Store differ
diff --git a/.classpath b/.classpath
index b0bfc4c38d16d9137fb3614051dff3b604572a9a..4f19badd18834c5dcac51e4b0de4bebe88f94eb5 100644
--- a/.classpath
+++ b/.classpath
@@ -1,18 +1,38 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry including="**/*.java" kind="src" output="target/classes" path="src">
+	<classpathentry including="**/*.java" kind="src" path="src">
 		<attributes>
 			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
+			<attribute name="module" value="true"/>
+			<attribute name="add-exports" value="javafx.base/com.sun.javafx.event=fr.inria.structgraphics:javafx.base/com.sun.javafx.event=structgraphics"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="lib" path="lib/matheclipse-core-1.0.0-SNAPSHOT-jar-with-dependencies.jar">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="lib" path="lib/controlsfx-14.0.1-SNAPSHOT.jar">
+		<attributes>
+			<attribute name="module" value="true"/>
+			<attribute name="add-exports" value="org.controlsfx.controls/impl.org.controlsfx.spreadsheet=structgraphics:org.controlsfx.controls/impl.org.controlsfx.i18n=structgraphics"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lib/matheclipse-core-1.0.0-SNAPSHOT-jar-with-dependencies.jar"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 91ca62e2761b9b632ad25bfa2bc6e543c97e4f0d..bc44b8dc3765cbf36eba2f5db39fe2260800f3ae 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,14 +1,16 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
 org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=14
 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.compliance=14
 org.eclipse.jdt.core.compiler.debug.lineNumber=generate
 org.eclipse.jdt.core.compiler.debug.localVariable=generate
 org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=enabled
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
 org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
 org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.source=14
diff --git a/README.md b/README.md
index bec9d0741ceabe045b0ba6e5720b099376bdecf5..4392d985ac846ba9cae061a400dcc3d9a8c83c9d 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
 # Code
 
-This project contains the Java code of the StructGraphics visualization design tool. We recommend buidling the code with JDK 1.8. 
+This project contains the Java code of the StructGraphics visualization design tool. 
+
+StructGraphics relies on the spreadsheet implementation of ControlsFX, which was originally developed for JDK 1.8. Unfortunately, blah blah... 
diff --git a/VisSketcher.launch b/VisSketcher.launch
new file mode 100644
index 0000000000000000000000000000000000000000..d06e266a057e4455bea6e93c4fb3be44b7874f5b
--- /dev/null
+++ b/VisSketcher.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+        <listEntry value="/structgraphics/src/fr/inria/structgraphics/VisSketcher.java"/>
+    </listAttribute>
+    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+        <listEntry value="1"/>
+    </listAttribute>
+    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
+    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
+    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
+    <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
+    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="fr.inria.structgraphics.VisSketcher"/>
+    <stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="structgraphics"/>
+    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="structgraphics"/>
+    <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
+    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--module-path ${project_classpath:structgraphics} --add-modules structgraphics,org.controlsfx.controls,javafx.controls,javafx.media,javafx.web,javafx.base,javafx.graphics --add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls&#10;--add-exports=javafx.base/com.sun.javafx.event=org.controlsfx.controls&#10;--add-exports=structgraphics/fr.inria.structgraphics=javafx.graphics&#10;--add-opens=javafx.controls/javafx.scene.control.skin=org.controlsfx.controls&#10;--add-opens=javafx.graphics/javafx.scene=org.controlsfx.controls"/>
+</launchConfiguration>
diff --git a/lib/.DS_Store b/lib/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6
Binary files /dev/null and b/lib/.DS_Store differ
diff --git a/lib/controlsfx-14.0.1-SNAPSHOT.jar b/lib/controlsfx-14.0.1-SNAPSHOT.jar
new file mode 100644
index 0000000000000000000000000000000000000000..2f4348e4beff7e6c738e604522434cefe4397e5d
Binary files /dev/null and b/lib/controlsfx-14.0.1-SNAPSHOT.jar differ
diff --git a/pom.xml b/pom.xml
index 0ad7dae2e580a28513e7852db7dacddaa81de0d4..4d3e6d70f8d19355a7c5d18fa650e7557055498b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,22 +16,29 @@
     <plugins>
       <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
-        <version>3.7.0</version>
+        <version>3.8.1</version>
         <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
+          <release>14</release>
         </configuration>
       </plugin>
+      <plugin>
+   		 <groupId>org.openjfx</groupId>
+  		  <artifactId>javafx-maven-plugin</artifactId>
+  		  <version>0.0.4</version>
+ 		   <configuration>
+    		    <mainClass>hellofx/org.openjfx.App</mainClass>
+   		 </configuration>
+		</plugin>
     </plugins>
   </build>
   
   
   <dependencies>
-  	<dependency>
-  		<groupId>javax.json</groupId>
-  		<artifactId>javax.json-api</artifactId>
-  		<version>1.0</version>
-  	</dependency>
+<!--   	<dependency> -->
+<!--   		<groupId>javax.json</groupId> -->
+<!--   		<artifactId>javax.json-api</artifactId> -->
+<!--   		<version>1.0</version> -->
+<!--   	</dependency> -->
   	
   	<dependency>
   		<groupId>org.glassfish</groupId>
@@ -39,6 +46,24 @@
   		<version>1.0.4</version>
   	</dependency>
 
+  	<dependency>
+  		<groupId>org.openjfx</groupId>
+  		<artifactId>javafx-controls</artifactId>
+  		<version>14</version>
+  	</dependency>
+  	  	
+  	<dependency>
+      <groupId>org.openjfx</groupId>
+      <artifactId>javafx-media</artifactId>
+      <version>14</version>
+    </dependency>
+    
+      <dependency>
+      <groupId>org.openjfx</groupId>
+      <artifactId>javafx-web</artifactId>
+      <version>14</version>
+    </dependency>
+      
   </dependencies>
   
 </project>
\ No newline at end of file
diff --git a/sessions/library.json b/sessions/library.json
index c2f1045b8097fa767537f247d0ec35691713423d..4345105bd8f43e9730e79d018dc7629a82236109 100644
--- a/sessions/library.json
+++ b/sessions/library.json
@@ -6,18 +6,18 @@
         "prefix":"B.",
         "thickness":1.5,
         "stroke":"0xd9cccc80",
-        "x":143.75,
-        "y":808.0,
-        "sticky-y":"No",
+        "x":490.0,
+        "y":937.0,
+        "sticky-y":"Yes",
         "sticky-x":"Yes",
         "distribution-x":"None",
-        "distribution-y":"Distance",
+        "distribution-y":"None",
         "rotation":0.0,
         "delta-x":0.0,
-        "delta-y":44.0,
+        "delta-y":10.0,
         "curve":"None",
-        "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","y","width","shape","fill","stroke","thickness","rotation"],
-        "variable":["A.y","x","height"],
+        "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","shape","stroke","thickness","rotation"],
+        "variable":["x","y","width","height","fill"],
         "components":[
             {
               "type":"Collection",
@@ -26,103 +26,154 @@
               "prefix":"A.",
               "thickness":1.5,
               "stroke":"0xd9cccc80",
-              "x":29.0,
+              "x":0.0,
               "y":0.0,
               "sticky-y":"No",
               "sticky-x":"No",
-              "distribution-x":"Distance",
+              "distribution-x":"None",
               "distribution-y":"None",
               "rotation":0.0,
-              "delta-x":50.25,
+              "delta-x":0.0,
               "delta-y":0.0,
               "curve":"None",
-              "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":["x"],
+              "common":["reference-x","reference-y","shape","fill","stroke","thickness","rotation"],
+              "variable":["x","y","width","height"],
               "components":[
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"1.1",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":21.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-y":"Center",
+                    "x":125.0,
+                    "y":141.0,
+                    "width":26.0,
+                    "height":26.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"1.2",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":71.25,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-y":"Center",
+                    "x":88.0,
+                    "y":76.0,
+                    "width":18.0,
+                    "height":18.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"1.3",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":121.5,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-y":"Center",
+                    "x":116.0,
+                    "y":36.0,
+                    "width":16.0,
+                    "height":16.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"1.4",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":171.75,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-y":"Center",
+                    "x":206.0,
+                    "y":69.0,
+                    "width":26.0,
+                    "height":26.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"1.5",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":222.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-y":"Center",
+                    "x":186.0,
+                    "y":114.0,
+                    "width":26.0,
+                    "height":26.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
+                  },
+                  {
+                    "type":"Ellipse",
+                    "id":"1.6",
+                    "level":0,
+                    "reference-x":"Center",
+                    "reference-y":"Center",
+                    "x":266.0,
+                    "y":107.0,
+                    "width":26.0,
+                    "height":26.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
+                  },
+                  {
+                    "type":"Ellipse",
+                    "id":"1.7",
+                    "level":0,
+                    "reference-x":"Center",
+                    "reference-y":"Center",
+                    "x":216.0,
+                    "y":141.0,
+                    "width":14.0,
+                    "height":14.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
+                  },
+                  {
+                    "type":"Ellipse",
+                    "id":"1.8",
+                    "level":0,
+                    "reference-x":"Center",
+                    "reference-y":"Center",
+                    "x":300.0,
+                    "y":188.0,
+                    "width":26.0,
+                    "height":26.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0xe64d4db1",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   }
                 ]
             },
@@ -133,314 +184,388 @@
               "prefix":"A.",
               "thickness":1.5,
               "stroke":"0xd9cccc80",
-              "x":29.0,
-              "y":44.0,
+              "x":0.0,
+              "y":0.0,
               "sticky-y":"No",
               "sticky-x":"No",
-              "distribution-x":"Distance",
+              "distribution-x":"None",
               "distribution-y":"None",
               "rotation":0.0,
-              "delta-x":50.25,
+              "delta-x":0.0,
               "delta-y":0.0,
               "curve":"None",
-              "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":["x"],
+              "common":["reference-x","reference-y","shape","fill","stroke","thickness","rotation"],
+              "variable":["x","y","width","height"],
               "components":[
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"2.1",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":21.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":16.0,
+                    "reference-y":"Center",
+                    "x":30.0,
+                    "y":56.0,
+                    "width":20.0,
+                    "height":20.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"2.2",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":71.25,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":16.0,
+                    "reference-y":"Center",
+                    "x":67.0,
+                    "y":104.0,
+                    "width":20.0,
+                    "height":20.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"2.3",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":121.5,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":16.0,
+                    "reference-y":"Center",
+                    "x":126.0,
+                    "y":68.0,
+                    "width":20.0,
+                    "height":20.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"2.4",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":171.75,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":16.0,
+                    "reference-y":"Center",
+                    "x":164.0,
+                    "y":71.0,
+                    "width":26.0,
+                    "height":26.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
+                    "type":"Ellipse",
                     "id":"2.5",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":222.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":16.0,
-                    "thickness":0.5,
-                    "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
-                  }
-                ]
-            },
-            {
-              "type":"Collection",
-              "id":"3",
-              "level":1,
-              "prefix":"A.",
-              "thickness":1.5,
-              "stroke":"0xd9cccc80",
-              "x":29.0,
-              "y":88.0,
-              "sticky-y":"No",
-              "sticky-x":"No",
-              "distribution-x":"Distance",
-              "distribution-y":"None",
-              "rotation":0.0,
-              "delta-x":50.25,
-              "delta-y":0.0,
-              "curve":"None",
-              "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":["x"],
-              "components":[
-                  {
-                    "type":"Rectangle",
-                    "id":"3.1",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":21.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":24.0,
-                    "thickness":0.5,
-                    "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
-                  },
-                  {
-                    "type":"Rectangle",
-                    "id":"3.2",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":71.25,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":24.0,
+                    "reference-y":"Center",
+                    "x":147.0,
+                    "y":116.0,
+                    "width":20.0,
+                    "height":20.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
-                    "id":"3.3",
+                    "type":"Ellipse",
+                    "id":"2.6",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":121.5,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":24.0,
+                    "reference-y":"Center",
+                    "x":257.0,
+                    "y":157.0,
+                    "width":20.0,
+                    "height":20.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
-                    "id":"3.4",
+                    "type":"Ellipse",
+                    "id":"2.7",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":171.75,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":24.0,
+                    "reference-y":"Center",
+                    "x":311.0,
+                    "y":149.0,
+                    "width":20.0,
+                    "height":20.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   },
                   {
-                    "type":"Rectangle",
-                    "id":"3.5",
+                    "type":"Ellipse",
+                    "id":"2.8",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":222.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":24.0,
+                    "reference-y":"Center",
+                    "x":237.0,
+                    "y":97.0,
+                    "width":20.0,
+                    "height":20.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Rectangle",
-                    "lock":"false"
+                    "fill":"0x6680e696",
+                    "stroke":"0x50508000",
+                    "shape":"Ellipse",
+                    "lock":"true"
                   }
                 ]
-            },
-            {
-              "type":"Collection",
-              "id":"4",
-              "level":1,
-              "prefix":"A.",
-              "thickness":1.5,
-              "stroke":"0xd9cccc80",
-              "x":29.0,
-              "y":132.0,
-              "sticky-y":"No",
-              "sticky-x":"No",
-              "distribution-x":"Distance",
-              "distribution-y":"None",
+            }
+          ]
+      },
+      {
+        "type":"Group",
+        "level":1,
+        "prefix":"A.",
+        "x":1004.0,
+        "y":1228.0,
+        "sticky-y":"Yes",
+        "sticky-x":"Yes",
+        "distribution-x":"None",
+        "distribution-y":"Spacing",
+        "rotation":0.0,
+        "delta-x":0.0,
+        "delta-y":10.0,
+        "common":["reference-x","reference-y","x","rotation"],
+        "variable":["y","width","height","shape","text","fontsize","fill","stroke","thickness"],
+        "public":["A.x","A.y"],
+        "bindings":[
+            ["reference-x1","reference-x2"],
+            ["reference-y1","reference-y2"],
+            ["x1","x2"],
+            ["rotation1","rotation2"]
+          ],
+        "components":[
+            {
+              "type":"Rectangle",
+              "id":"1",
+              "level":0,
+              "reference-x":"Center",
+              "reference-y":"Bottom",
+              "x":0.0,
+              "y":0.0,
+              "width":66.0,
+              "height":62.0,
+              "thickness":0.5,
               "rotation":0.0,
-              "delta-x":50.25,
-              "delta-y":0.0,
+              "fill":"0xffff66ff",
+              "stroke":"0x505080ff",
+              "shape":"Rectangle",
+              "lock":"false"
+            },
+            {
+              "type":"Text",
+              "id":"2",
+              "level":0,
+              "reference-x":"Center",
+              "reference-y":"Bottom",
+              "x":0.0,
+              "y":72.0,
+              "width":75.0,
+              "height":19.0,
+              "rotation":0.0,
+              "fill":"0x696969ff",
+              "text":"my label",
+              "fontsize":14.0,
+              "lock":"false"
+            }
+          ]
+      },
+      {
+        "type":"Collection",
+        "level":2,
+        "prefix":"B.",
+        "thickness":1.5,
+        "stroke":"0xd9cccc80",
+        "x":1004.0,
+        "y":935.0,
+        "sticky-y":"Yes",
+        "sticky-x":"Yes",
+        "distribution-x":"None",
+        "distribution-y":"None",
+        "rotation":0.0,
+        "delta-x":0.0,
+        "delta-y":0.0,
+        "curve":"None",
+        "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","x","height","shape","stroke","thickness","rotation"],
+        "variable":["y","width","fill"],
+        "components":[
+            {
+              "type":"Collection",
+              "id":"1",
+              "level":1,
+              "prefix":"A.",
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":0.0,
+              "y":0.0,
+              "sticky-y":"Yes",
+              "sticky-x":"Yes",
+              "distribution-x":"None",
+              "distribution-y":"Spacing",
+              "rotation":0.0,
+              "delta-x":0.0,
+              "delta-y":11.0,
               "curve":"None",
-              "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":["x"],
+              "common":["reference-x","reference-y","x","height","shape","fill","stroke","thickness","rotation"],
+              "variable":["y","width"],
               "components":[
                   {
                     "type":"Rectangle",
-                    "id":"4.1",
+                    "id":"1.1",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":21.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
                     "y":0.0,
-                    "width":30.0,
-                    "height":30.0,
+                    "width":-39.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0xe6b3e6ff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"4.2",
+                    "id":"1.2",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":71.25,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":30.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":36.0,
+                    "width":-72.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0xe6b3e6ff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"4.3",
+                    "id":"1.3",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":121.5,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":30.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":72.0,
+                    "width":-82.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0xe6b3e6ff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"4.4",
+                    "id":"1.4",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":171.75,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":30.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":108.0,
+                    "width":-89.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0xe6b3e6ff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"4.5",
+                    "id":"1.5",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":222.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":30.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":144.0,
+                    "width":-93.0,
+                    "height":25.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0xe6b3e6ff",
+                    "stroke":"0x505080ff",
+                    "shape":"Rectangle",
+                    "lock":"false"
+                  },
+                  {
+                    "type":"Rectangle",
+                    "id":"1.6",
+                    "level":0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":180.0,
+                    "width":-51.0,
+                    "height":25.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0xe6b3e6ff",
+                    "stroke":"0x505080ff",
+                    "shape":"Rectangle",
+                    "lock":"false"
+                  },
+                  {
+                    "type":"Rectangle",
+                    "id":"1.7",
+                    "level":0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":216.0,
+                    "width":-39.0,
+                    "height":25.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0xe6b3e6ff",
+                    "stroke":"0x505080ff",
+                    "shape":"Rectangle",
+                    "lock":"false"
+                  },
+                  {
+                    "type":"Rectangle",
+                    "id":"1.8",
+                    "level":0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":252.0,
+                    "width":-26.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0xe6b3e6ff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
@@ -449,105 +574,156 @@
             },
             {
               "type":"Collection",
-              "id":"5",
+              "id":"2",
               "level":1,
               "prefix":"A.",
               "thickness":1.5,
               "stroke":"0xd9cccc80",
-              "x":29.0,
-              "y":176.0,
-              "sticky-y":"No",
-              "sticky-x":"No",
-              "distribution-x":"Distance",
-              "distribution-y":"None",
+              "x":0.0,
+              "y":0.0,
+              "sticky-y":"Yes",
+              "sticky-x":"Yes",
+              "distribution-x":"None",
+              "distribution-y":"Spacing",
               "rotation":0.0,
-              "delta-x":50.25,
-              "delta-y":0.0,
+              "delta-x":0.0,
+              "delta-y":11.0,
               "curve":"None",
-              "common":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":["x"],
+              "common":["reference-x","reference-y","x","height","shape","fill","stroke","thickness","rotation"],
+              "variable":["y","width"],
               "components":[
                   {
                     "type":"Rectangle",
-                    "id":"5.1",
+                    "id":"2.1",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":21.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
                     "y":0.0,
                     "width":30.0,
-                    "height":37.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0x99b3ffff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"5.2",
+                    "id":"2.2",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":71.25,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":36.0,
+                    "width":86.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0x99b3ffff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"5.3",
+                    "id":"2.3",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":121.5,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":72.0,
+                    "width":82.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0x99b3ffff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"5.4",
+                    "id":"2.4",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":171.75,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":108.0,
+                    "width":103.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0x99b3ffff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
                     "type":"Rectangle",
-                    "id":"5.5",
+                    "id":"2.5",
                     "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":222.0,
-                    "y":0.0,
-                    "width":30.0,
-                    "height":37.0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":144.0,
+                    "width":125.0,
+                    "height":25.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x99b3ffff",
+                    "stroke":"0x505080ff",
+                    "shape":"Rectangle",
+                    "lock":"false"
+                  },
+                  {
+                    "type":"Rectangle",
+                    "id":"2.6",
+                    "level":0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":180.0,
+                    "width":66.0,
+                    "height":25.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x99b3ffff",
+                    "stroke":"0x505080ff",
+                    "shape":"Rectangle",
+                    "lock":"false"
+                  },
+                  {
+                    "type":"Rectangle",
+                    "id":"2.7",
+                    "level":0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":216.0,
+                    "width":36.0,
+                    "height":25.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x99b3ffff",
+                    "stroke":"0x505080ff",
+                    "shape":"Rectangle",
+                    "lock":"false"
+                  },
+                  {
+                    "type":"Rectangle",
+                    "id":"2.8",
+                    "level":0,
+                    "reference-x":"Left",
+                    "reference-y":"Center",
+                    "x":0.0,
+                    "y":252.0,
+                    "width":9.0,
+                    "height":25.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xcbd7e4ff",
+                    "fill":"0x99b3ffff",
                     "stroke":"0x505080ff",
                     "shape":"Rectangle",
                     "lock":"false"
@@ -560,31 +736,26 @@
         "type":"Group",
         "level":1,
         "prefix":"A.",
-        "x":494.0,
-        "y":913.0,
+        "x":978.0,
+        "y":803.0,
         "sticky-y":"Yes",
-        "sticky-x":"No",
+        "sticky-x":"Yes",
         "distribution-x":"None",
-        "distribution-y":"Spacing",
-        "rotation":20.0,
-        "delta-x":0.0,
+        "distribution-y":"None",
+        "rotation":0.0,
+        "delta-x":-124.0,
         "delta-y":0.0,
-        "common":["reference-x","reference-y","x","height","shape","fill","stroke","thickness","rotation"],
-        "variable":["y","width"],
+        "common":["reference-x","reference-y","x1","y","stroke","thickness","rotation"],
+        "variable":["width","height","shape","fill"],
         "public":["A.x","A.y"],
         "bindings":[
-            ["reference-x1","reference-x2","reference-x3"],
-            ["reference-y1"],
-            ["reference-y2","reference-y3"],
-            ["x1","x2","x3"],
-            ["height1","height3"],
-            ["height2"],
-            ["shape1","shape2","shape3"],
-            ["fill1","fill3"],
-            ["fill2"],
-            ["stroke1","stroke2","stroke3"],
-            ["thickness1","thickness2","thickness3"],
-            ["rotation1","rotation2","rotation3"]
+            ["reference-x1","reference-x2"],
+            ["reference-y1","reference-y2"],
+            ["x1","x2"],
+            ["y1","y2"],
+            ["stroke1","stroke2"],
+            ["thickness1","thickness2"],
+            ["rotation1","rotation2"]
           ],
         "components":[
             {
@@ -592,761 +763,482 @@
               "id":"1",
               "level":0,
               "reference-x":"Center",
-              "reference-y":"Top",
+              "reference-y":"Center",
               "x":0.0,
-              "y":-41.0,
-              "width":92.0,
-              "height":10.0,
+              "y":0.0,
+              "width":106.0,
+              "height":106.0,
               "thickness":0.5,
               "rotation":0.0,
-              "fill":"0xe6e699ff",
+              "fill":"0xff9999ff",
               "stroke":"0x505080ff",
               "shape":"Rectangle",
-              "lock":"false"
+              "lock":"true"
             },
             {
-              "type":"Rectangle",
+              "type":"Ellipse",
               "id":"2",
               "level":0,
               "reference-x":"Center",
               "reference-y":"Center",
               "x":0.0,
-              "y":2.0,
-              "width":13.0,
-              "height":86.0,
+              "y":0.0,
+              "width":78.0,
+              "height":78.0,
               "thickness":0.5,
               "rotation":0.0,
-              "fill":"0xffe6ccff",
+              "fill":"0xffff66ff",
               "stroke":"0x505080ff",
-              "shape":"Rectangle",
-              "lock":"false"
-            },
-            {
-              "type":"Rectangle",
-              "id":"3",
-              "level":0,
-              "reference-x":"Center",
-              "reference-y":"Center",
-              "x":0.0,
-              "y":50.0,
-              "width":55.0,
-              "height":10.0,
-              "thickness":0.5,
-              "rotation":0.0,
-              "fill":"0xe6e699ff",
-              "stroke":"0x505080ff",
-              "shape":"Rectangle",
+              "shape":"Ellipse",
               "lock":"false"
             }
           ]
       },
       {
         "type":"Collection",
-        "level":1,
-        "prefix":"A.",
-        "thickness":1.5,
-        "stroke":"0xd9cccc80",
-        "x":107.125,
-        "y":3.0,
-        "sticky-y":"No",
-        "sticky-x":"No",
-        "distribution-x":"None",
-        "distribution-y":"Spacing",
-        "rotation":0.0,
-        "delta-x":0.0,
-        "delta-y":5.0,
-        "curve":"None",
-        "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
-        "variable":["y","height","fill"],
-        "components":[
-            {
-              "type":"Ellipse",
-              "id":"1",
-              "level":0,
-              "reference-x":"Center",
-              "reference-y":"Bottom",
-              "x":0.0,
-              "y":0.0,
-              "width":37.0,
-              "height":29.0,
-              "thickness":0.5,
-              "rotation":0.0,
-              "fill":"0xffe6ccff",
-              "stroke":"0x505080ff",
-              "shape":"Ellipse",
-              "lock":"false"
-            },
-            {
-              "type":"Ellipse",
-              "id":"2",
-              "level":0,
-              "reference-x":"Center",
-              "reference-y":"Bottom",
-              "x":0.0,
-              "y":34.0,
-              "width":37.0,
-              "height":22.0,
-              "thickness":0.5,
-              "rotation":0.0,
-              "fill":"0xff9999ff",
-              "stroke":"0x505080ff",
-              "shape":"Ellipse",
-              "lock":"false"
-            },
-            {
-              "type":"Ellipse",
-              "id":"3",
-              "level":0,
-              "reference-x":"Center",
-              "reference-y":"Bottom",
-              "x":0.0,
-              "y":61.0,
-              "width":37.0,
-              "height":37.0,
-              "thickness":0.5,
-              "rotation":0.0,
-              "fill":"0xffcc66ff",
-              "stroke":"0x505080ff",
-              "shape":"Ellipse",
-              "lock":"false"
-            }
-          ]
-      },
-      {
-        "type":"Group",
-        "level":1,
-        "prefix":"A.",
-        "x":174.0,
-        "y":0.0,
-        "sticky-y":"Yes",
-        "sticky-x":"Yes",
-        "distribution-x":"None",
-        "distribution-y":"None",
-        "rotation":0.0,
-        "delta-x":12.0,
-        "delta-y":0.0,
-        "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"],
-        "variable":[],
-        "public":["A.x","A.y","width1","fill1","fill2","fill3"],
-        "bindings":[
-            ["reference-x1","reference-x2","reference-x3"],
-            ["reference-y1","reference-y2","reference-y3"],
-            ["x1"],
-            ["x2"],
-            ["x3"],
-            ["y1","y2","y3"],
-            ["width1"],
-            ["width2","width3"],
-            ["height1"],
-            ["height2","height3"],
-            ["shape1","shape2","shape3"],
-            ["fill1"],
-            ["fill2","fill3"],
-            ["stroke1","stroke2","stroke3"],
-            ["thickness1","thickness2","thickness3"],
-            ["rotation1","rotation2"],
-            ["rotation3"]
-          ],
-        "components":[
-            {
-              "type":"Ellipse",
-              "id":"1",
-              "level":0,
-              "reference-x":"Center",
-              "reference-y":"Center",
-              "x":0.0,
-              "y":0.0,
-              "width":122.0,
-              "height":122.0,
-              "thickness":0.0,
-              "rotation":0.0,
-              "fill":"0xcc3333ff",
-              "stroke":"0x505080ff",
-              "shape":"Ellipse",
-              "lock":"true"
-            },
-            {
-              "type":"Ellipse",
-              "id":"2",
-              "level":0,
-              "reference-x":"Center",
-              "reference-y":"Center",
-              "x":0.0,
-              "y":0.0,
-              "width":20.0,
-              "height":51.0,
-              "thickness":0.0,
-              "rotation":0.0,
-              "fill":"0x99cc99ff",
-              "stroke":"0x505080ff",
-              "shape":"Ellipse",
-              "lock":"false"
-            },
-            {
-              "type":"Ellipse",
-              "id":"3",
-              "level":0,
-              "reference-x":"Center",
-              "reference-y":"Center",
-              "x":0.0,
-              "y":0.0,
-              "width":20.0,
-              "height":51.0,
-              "thickness":0.0,
-              "rotation":90.0,
-              "fill":"0x99cc99ff",
-              "stroke":"0x505080ff",
-              "shape":"Ellipse",
-              "lock":"false"
-            }
-          ]
-      },
-      {
-        "type":"LineChart",
         "level":2,
         "prefix":"B.",
         "thickness":1.5,
-        "stroke":"0xe6e64dff",
-        "x":84.0,
-        "y":902.0,
+        "stroke":"0xd9cccc80",
+        "x":125.0,
+        "y":1120.0,
         "sticky-y":"No",
-        "sticky-x":"Yes",
-        "distribution-x":"Spacing",
+        "sticky-x":"No",
+        "distribution-x":"Distance",
         "distribution-y":"None",
         "rotation":0.0,
-        "delta-x":29.0,
+        "delta-x":57.125,
         "delta-y":0.0,
-        "curve":"BezierSolid",
-        "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.y","A.rotation","reference-x1","reference-y1","x1","y1","shape1","fill1","stroke1","thickness1","rotation1","x2","width2","height2","fill2","x3","rotation3"],
-        "variable":["A.x","width1","height1","reference-x2","reference-y2","y2","shape2","stroke2","thickness2","rotation2","reference-x3","reference-y3","y3","width3","height3","shape3","fill3","stroke3","thickness3"],
+        "curve":"None",
+        "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","x","width","shape","fill","stroke","thickness","rotation"],
+        "variable":["A.x","y","height"],
         "components":[
             {
-              "type":"Group",
+              "type":"Collection",
               "id":"1",
               "level":1,
               "prefix":"A.",
-              "x":81.5,
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":42.0,
               "y":0.0,
-              "sticky-y":"Yes",
-              "sticky-x":"Yes",
+              "sticky-y":"No",
+              "sticky-x":"No",
               "distribution-x":"None",
-              "distribution-y":"None",
+              "distribution-y":"Spacing",
               "rotation":0.0,
-              "delta-x":12.0,
-              "delta-y":0.0,
-              "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":[],
-              "public":["A.x","A.y","width1","fill1","fill2","fill3"],
-              "bindings":[
-                  ["reference-x1","reference-x2","reference-x3"],
-                  ["reference-y1","reference-y2","reference-y3"],
-                  ["x1","x2","x3"],
-                  ["y1","y2","y3"],
-                  ["width1"],
-                  ["width2","width3"],
-                  ["height1"],
-                  ["height2","height3"],
-                  ["shape1","shape2","shape3"],
-                  ["fill1"],
-                  ["fill2","fill3"],
-                  ["stroke1","stroke2","stroke3"],
-                  ["thickness1","thickness2","thickness3"],
-                  ["rotation1","rotation2"],
-                  ["rotation3"]
-                ],
+              "delta-x":0.0,
+              "delta-y":5.0,
+              "curve":"None",
+              "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
+              "variable":["y","height","fill"],
               "components":[
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"1.1",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
                     "y":0.0,
-                    "width":122.0,
-                    "height":122.0,
-                    "thickness":0.0,
+                    "width":37.0,
+                    "height":49.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xe6804dff",
+                    "fill":"0xffe6ccff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"true"
+                    "shape":"Rectangle",
+                    "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"1.2",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
+                    "y":54.0,
+                    "width":37.0,
+                    "height":27.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0x99cc99ff",
+                    "fill":"0xe6e699ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"1.3",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
-                    "rotation":90.0,
-                    "fill":"0x99cc99ff",
+                    "y":86.0,
+                    "width":37.0,
+                    "height":38.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x80b380ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   }
                 ]
             },
             {
-              "type":"Group",
+              "type":"Collection",
               "id":"2",
               "level":1,
               "prefix":"A.",
-              "x":218.5,
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":99.125,
               "y":0.0,
-              "sticky-y":"Yes",
-              "sticky-x":"Yes",
+              "sticky-y":"No",
+              "sticky-x":"No",
               "distribution-x":"None",
-              "distribution-y":"None",
+              "distribution-y":"Spacing",
               "rotation":0.0,
-              "delta-x":12.0,
-              "delta-y":0.0,
-              "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":[],
-              "public":["A.x","A.y","width1","fill1","fill2","fill3"],
-              "bindings":[
-                  ["reference-x1","reference-x2","reference-x3"],
-                  ["reference-y1","reference-y2","reference-y3"],
-                  ["x1","x2","x3"],
-                  ["y1","y2","y3"],
-                  ["width1"],
-                  ["width2","width3"],
-                  ["height1"],
-                  ["height2","height3"],
-                  ["shape1","shape2","shape3"],
-                  ["fill1"],
-                  ["fill2","fill3"],
-                  ["stroke1","stroke2","stroke3"],
-                  ["thickness1","thickness2","thickness3"],
-                  ["rotation1","rotation2"],
-                  ["rotation3"]
-                ],
+              "delta-x":0.0,
+              "delta-y":5.0,
+              "curve":"None",
+              "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
+              "variable":["y","height","fill"],
               "components":[
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"2.1",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
                     "y":0.0,
-                    "width":94.0,
-                    "height":94.0,
-                    "thickness":0.0,
+                    "width":37.0,
+                    "height":29.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xe6804dff",
+                    "fill":"0xffe6ccff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"true"
+                    "shape":"Rectangle",
+                    "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"2.2",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
+                    "y":34.0,
+                    "width":37.0,
+                    "height":22.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0x99cc99ff",
+                    "fill":"0xe6e699ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"2.3",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
-                    "rotation":90.0,
-                    "fill":"0x99cc99ff",
+                    "y":61.0,
+                    "width":37.0,
+                    "height":37.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x80b380ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   }
                 ]
             },
             {
-              "type":"Group",
+              "type":"Collection",
               "id":"3",
               "level":1,
               "prefix":"A.",
-              "x":340.5,
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":156.25,
               "y":0.0,
-              "sticky-y":"Yes",
-              "sticky-x":"Yes",
+              "sticky-y":"No",
+              "sticky-x":"No",
               "distribution-x":"None",
-              "distribution-y":"None",
+              "distribution-y":"Spacing",
               "rotation":0.0,
-              "delta-x":12.0,
-              "delta-y":0.0,
-              "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":[],
-              "public":["A.x","A.y","width1","fill1","fill2","fill3"],
-              "bindings":[
-                  ["reference-x1","reference-x2","reference-x3"],
-                  ["reference-y1","reference-y2","reference-y3"],
-                  ["x1","x2","x3"],
-                  ["y1","y2","y3"],
-                  ["width1"],
-                  ["width2","width3"],
-                  ["height1"],
-                  ["height2","height3"],
-                  ["shape1","shape2","shape3"],
-                  ["fill1"],
-                  ["fill2","fill3"],
-                  ["stroke1","stroke2","stroke3"],
-                  ["thickness1","thickness2","thickness3"],
-                  ["rotation1","rotation2"],
-                  ["rotation3"]
-                ],
+              "delta-x":0.0,
+              "delta-y":5.0,
+              "curve":"None",
+              "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
+              "variable":["y","height","fill"],
               "components":[
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"3.1",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
                     "y":0.0,
-                    "width":92.0,
-                    "height":92.0,
-                    "thickness":0.0,
+                    "width":37.0,
+                    "height":57.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xe6804dff",
+                    "fill":"0xffe6ccff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"true"
+                    "shape":"Rectangle",
+                    "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"3.2",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
+                    "y":62.0,
+                    "width":37.0,
+                    "height":20.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0x99cc99ff",
+                    "fill":"0xe6e699ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"3.3",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
-                    "rotation":90.0,
-                    "fill":"0x99cc99ff",
+                    "y":87.0,
+                    "width":37.0,
+                    "height":37.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x80b380ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   }
                 ]
             },
             {
-              "type":"Group",
+              "type":"Collection",
               "id":"4",
               "level":1,
               "prefix":"A.",
-              "x":480.5,
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":213.375,
               "y":0.0,
-              "sticky-y":"Yes",
-              "sticky-x":"Yes",
+              "sticky-y":"No",
+              "sticky-x":"No",
               "distribution-x":"None",
-              "distribution-y":"None",
+              "distribution-y":"Spacing",
               "rotation":0.0,
-              "delta-x":12.0,
-              "delta-y":0.0,
-              "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":[],
-              "public":["A.x","A.y","width1","fill1","fill2","fill3"],
-              "bindings":[
-                  ["reference-x1","reference-x2","reference-x3"],
-                  ["reference-y1","reference-y2","reference-y3"],
-                  ["x1","x2","x3"],
-                  ["y1","y2","y3"],
-                  ["width1"],
-                  ["width2","width3"],
-                  ["height1"],
-                  ["height2","height3"],
-                  ["shape1","shape2","shape3"],
-                  ["fill1"],
-                  ["fill2","fill3"],
-                  ["stroke1","stroke2","stroke3"],
-                  ["thickness1","thickness2","thickness3"],
-                  ["rotation1","rotation2"],
-                  ["rotation3"]
-                ],
+              "delta-x":0.0,
+              "delta-y":5.0,
+              "curve":"None",
+              "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
+              "variable":["y","height","fill"],
               "components":[
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"4.1",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
                     "y":0.0,
-                    "width":130.0,
-                    "height":130.0,
-                    "thickness":0.0,
+                    "width":37.0,
+                    "height":47.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xe6804dff",
+                    "fill":"0xffe6ccff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"true"
+                    "shape":"Rectangle",
+                    "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"4.2",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
+                    "y":52.0,
+                    "width":37.0,
+                    "height":42.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0x99cc99ff",
+                    "fill":"0xe6e699ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"4.3",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
-                    "rotation":90.0,
-                    "fill":"0x99cc99ff",
+                    "y":99.0,
+                    "width":37.0,
+                    "height":54.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x80b380ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   }
                 ]
             },
             {
-              "type":"Group",
+              "type":"Collection",
               "id":"5",
               "level":1,
               "prefix":"A.",
-              "x":639.5,
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":270.5,
               "y":0.0,
-              "sticky-y":"Yes",
-              "sticky-x":"Yes",
+              "sticky-y":"No",
+              "sticky-x":"No",
               "distribution-x":"None",
-              "distribution-y":"None",
+              "distribution-y":"Spacing",
               "rotation":0.0,
-              "delta-x":12.0,
-              "delta-y":0.0,
-              "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":[],
-              "public":["A.x","A.y","width1","fill1","fill2","fill3"],
-              "bindings":[
-                  ["reference-x1","reference-x2","reference-x3"],
-                  ["reference-y1","reference-y2","reference-y3"],
-                  ["x1","x2","x3"],
-                  ["y1","y2","y3"],
-                  ["width1"],
-                  ["width2","width3"],
-                  ["height1"],
-                  ["height2","height3"],
-                  ["shape1","shape2","shape3"],
-                  ["fill1"],
-                  ["fill2","fill3"],
-                  ["stroke1","stroke2","stroke3"],
-                  ["thickness1","thickness2","thickness3"],
-                  ["rotation1","rotation2"],
-                  ["rotation3"]
-                ],
+              "delta-x":0.0,
+              "delta-y":5.0,
+              "curve":"None",
+              "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
+              "variable":["y","height","fill"],
               "components":[
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"5.1",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
                     "y":0.0,
-                    "width":130.0,
-                    "height":130.0,
-                    "thickness":0.0,
+                    "width":37.0,
+                    "height":18.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xe6804dff",
+                    "fill":"0xffe6ccff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"true"
+                    "shape":"Rectangle",
+                    "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"5.2",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
+                    "y":23.0,
+                    "width":37.0,
+                    "height":22.0,
+                    "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0x99cc99ff",
+                    "fill":"0xe6e699ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   },
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"5.3",
                     "level":0,
                     "reference-x":"Center",
-                    "reference-y":"Center",
+                    "reference-y":"Bottom",
                     "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
-                    "rotation":90.0,
-                    "fill":"0x99cc99ff",
+                    "y":50.0,
+                    "width":37.0,
+                    "height":26.0,
+                    "thickness":0.5,
+                    "rotation":0.0,
+                    "fill":"0x80b380ff",
                     "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "shape":"Rectangle",
                     "lock":"false"
                   }
                 ]
-            },
+            }
+          ]
+      },
+      {
+        "type":"Group",
+        "level":1,
+        "prefix":"A.",
+        "x":222.5,
+        "y":1071.0,
+        "sticky-y":"No",
+        "sticky-x":"No",
+        "distribution-x":"None",
+        "distribution-y":"Spacing",
+        "rotation":20.0,
+        "delta-x":0.0,
+        "delta-y":4.0,
+        "common":["reference-x","reference-y","x","shape","stroke","thickness","rotation"],
+        "variable":["y","width","height","fill"],
+        "public":["A.x","A.y"],
+        "bindings":[
+            ["reference-x1","reference-x2"],
+            ["reference-y1","reference-y2"],
+            ["x1","x2"],
+            ["shape1","shape2"],
+            ["stroke1","stroke2"],
+            ["thickness1","thickness2"],
+            ["rotation1","rotation2"]
+          ],
+        "components":[
             {
-              "type":"Group",
-              "id":"6",
-              "level":1,
-              "prefix":"A.",
-              "x":798.5,
+              "type":"Rectangle",
+              "id":"1",
+              "level":0,
+              "reference-x":"Center",
+              "reference-y":"Bottom",
+              "x":0.0,
               "y":0.0,
-              "sticky-y":"Yes",
-              "sticky-x":"Yes",
-              "distribution-x":"None",
-              "distribution-y":"None",
+              "width":88.0,
+              "height":12.0,
+              "thickness":0.5,
               "rotation":0.0,
-              "delta-x":12.0,
-              "delta-y":0.0,
-              "common":["reference-x","reference-y","x1","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "variable":[],
-              "public":["A.x","A.y","width1","fill1","fill2","fill3"],
-              "bindings":[
-                  ["reference-x1","reference-x2","reference-x3"],
-                  ["reference-y1","reference-y2","reference-y3"],
-                  ["x1","x2","x3"],
-                  ["y1","y2","y3"],
-                  ["width1"],
-                  ["width2","width3"],
-                  ["height1"],
-                  ["height2","height3"],
-                  ["shape1","shape2","shape3"],
-                  ["fill1"],
-                  ["fill2","fill3"],
-                  ["stroke1","stroke2","stroke3"],
-                  ["thickness1","thickness2","thickness3"],
-                  ["rotation1","rotation2"],
-                  ["rotation3"]
-                ],
-              "components":[
-                  {
-                    "type":"Ellipse",
-                    "id":"6.1",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Center",
-                    "x":0.0,
-                    "y":0.0,
-                    "width":130.0,
-                    "height":130.0,
-                    "thickness":0.0,
-                    "rotation":0.0,
-                    "fill":"0xe6804dff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"true"
-                  },
-                  {
-                    "type":"Ellipse",
-                    "id":"6.2",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Center",
-                    "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
-                    "rotation":0.0,
-                    "fill":"0x99cc99ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"false"
-                  },
-                  {
-                    "type":"Ellipse",
-                    "id":"6.3",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Center",
-                    "x":0.0,
-                    "y":0.0,
-                    "width":20.0,
-                    "height":51.0,
-                    "thickness":0.0,
-                    "rotation":90.0,
-                    "fill":"0x99cc99ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"false"
-                  }
-                ]
+              "fill":"0xffccccff",
+              "stroke":"0x505080ff",
+              "shape":"Rectangle",
+              "lock":"false"
+            },
+            {
+              "type":"Rectangle",
+              "id":"2",
+              "level":0,
+              "reference-x":"Center",
+              "reference-y":"Bottom",
+              "x":0.0,
+              "y":16.0,
+              "width":16.0,
+              "height":91.0,
+              "thickness":0.5,
+              "rotation":0.0,
+              "fill":"0xb3ccffff",
+              "stroke":"0x505080ff",
+              "shape":"Rectangle",
+              "lock":"false"
             }
           ]
       },
@@ -1356,498 +1248,263 @@
         "prefix":"B.",
         "thickness":1.5,
         "stroke":"0xd9cccc80",
-        "x":940.0,
-        "y":946.0,
+        "x":127.0,
+        "y":871.5,
         "sticky-y":"No",
         "sticky-x":"No",
         "distribution-x":"None",
         "distribution-y":"None",
         "rotation":0.0,
-        "delta-x":42.25,
+        "delta-x":0.0,
         "delta-y":0.0,
         "curve":"None",
-        "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.x","A.y","reference-x1","reference-y1","x1","y1","width1","height1","shape1","fill1","stroke1","thickness1","rotation1"],
-        "variable":["A.rotation"],
+        "common":["A.sticky-x","A.sticky-y","A.distribution-x","A.delta-x","A.distribution-y","A.delta-y","A.y","A.curve","A.stroke","A.thickness","A.rotation","reference-x","reference-y","x","width","shape","fill","stroke","thickness","rotation"],
+        "variable":["A.x","y","height"],
         "components":[
             {
-              "type":"Group",
+              "type":"Collection",
               "id":"1",
               "level":1,
               "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":23.0,
+              "y":14.0,
               "sticky-y":"Yes",
-              "sticky-x":"No",
+              "sticky-x":"Yes",
               "distribution-x":"None",
-              "distribution-y":"None",
+              "distribution-y":"Spacing",
               "rotation":0.0,
               "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
+              "delta-y":7.0,
+              "curve":"None",
+              "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
+              "variable":["y","height","fill"],
               "components":[
                   {
-                    "type":"Ellipse",
+                    "type":"Rectangle",
                     "id":"1.1",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":0.0,
+                    "width":16.0,
+                    "height":44.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0xccccccff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
-                  }
-                ]
-            },
-            {
-              "type":"Group",
-              "id":"2",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":30.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
+                  },
                   {
-                    "type":"Ellipse",
-                    "id":"2.1",
+                    "type":"Rectangle",
+                    "id":"1.2",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":51.0,
+                    "width":16.0,
+                    "height":10.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0xffe666ff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
-                  }
-                ]
-            },
-            {
-              "type":"Group",
-              "id":"3",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":60.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
+                  },
                   {
-                    "type":"Ellipse",
-                    "id":"3.1",
+                    "type":"Rectangle",
+                    "id":"1.3",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":68.0,
+                    "width":16.0,
+                    "height":148.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0xe64d4dff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
-                  }
-                ]
-            },
-            {
-              "type":"Group",
-              "id":"4",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":90.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
+                  },
                   {
-                    "type":"Ellipse",
-                    "id":"4.1",
+                    "type":"Rectangle",
+                    "id":"1.4",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":223.0,
+                    "width":16.0,
+                    "height":96.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0x6680e6ff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
                   }
                 ]
             },
             {
-              "type":"Group",
-              "id":"5",
+              "type":"Collection",
+              "id":"2",
               "level":1,
               "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
+              "thickness":1.5,
+              "stroke":"0xd9cccc80",
+              "x":406.0,
+              "y":14.0,
               "sticky-y":"Yes",
-              "sticky-x":"No",
+              "sticky-x":"Yes",
               "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":120.0,
+              "distribution-y":"Spacing",
+              "rotation":0.0,
               "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
+              "delta-y":7.0,
+              "curve":"None",
+              "common":["reference-x","reference-y","x","width","shape","stroke","thickness","rotation"],
+              "variable":["y","height","fill"],
               "components":[
                   {
-                    "type":"Ellipse",
-                    "id":"5.1",
+                    "type":"Rectangle",
+                    "id":"2.1",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":0.0,
+                    "width":16.0,
+                    "height":42.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0xccccccff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
-                  }
-                ]
-            },
-            {
-              "type":"Group",
-              "id":"6",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":150.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
+                  },
                   {
-                    "type":"Ellipse",
-                    "id":"6.1",
+                    "type":"Rectangle",
+                    "id":"2.2",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":49.0,
+                    "width":16.0,
+                    "height":18.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0xffe666ff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
-                  }
-                ]
-            },
-            {
-              "type":"Group",
-              "id":"7",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":180.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
+                  },
                   {
-                    "type":"Ellipse",
-                    "id":"7.1",
+                    "type":"Rectangle",
+                    "id":"2.3",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":74.0,
+                    "width":16.0,
+                    "height":146.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0xe64d4dff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
-                  }
-                ]
-            },
-            {
-              "type":"Group",
-              "id":"8",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":210.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
+                  },
                   {
-                    "type":"Ellipse",
-                    "id":"8.1",
+                    "type":"Rectangle",
+                    "id":"2.4",
                     "level":0,
                     "reference-x":"Center",
                     "reference-y":"Bottom",
                     "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
+                    "y":227.0,
+                    "width":16.0,
+                    "height":92.0,
                     "thickness":0.5,
                     "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
+                    "fill":"0x6680e6ff",
+                    "stroke":"0x50508000",
+                    "shape":"Rectangle",
                     "lock":"false"
                   }
                 ]
+            }
+          ],
+        "fill":"0xaaaabcff",
+        "opacity":0.3253968253968254,
+        "coloring":"Source",
+        "connections":[
+            {
+              "origin":"1.4",
+              "destination":"2.4",
+              "weight":84.0
             },
             {
-              "type":"Group",
-              "id":"9",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":240.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
-                  {
-                    "type":"Ellipse",
-                    "id":"9.1",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
-                    "thickness":0.5,
-                    "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"false"
-                  }
-                ]
+              "origin":"1.3",
+              "destination":"2.1",
+              "weight":6.0
             },
             {
-              "type":"Group",
-              "id":"10",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":270.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
-                  {
-                    "type":"Ellipse",
-                    "id":"10.1",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
-                    "thickness":0.5,
-                    "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"false"
-                  }
-                ]
+              "origin":"1.3",
+              "destination":"2.3",
+              "weight":138.0
             },
             {
-              "type":"Group",
-              "id":"11",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":300.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
-                  {
-                    "type":"Ellipse",
-                    "id":"11.1",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
-                    "thickness":0.5,
-                    "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"false"
-                  }
-                ]
+              "origin":"1.4",
+              "destination":"2.2",
+              "weight":2.0
             },
             {
-              "type":"Group",
-              "id":"12",
-              "level":1,
-              "prefix":"A.",
-              "x":12.0,
-              "y":72.0,
-              "sticky-y":"Yes",
-              "sticky-x":"No",
-              "distribution-x":"None",
-              "distribution-y":"None",
-              "rotation":330.0,
-              "delta-x":0.0,
-              "delta-y":0.0,
-              "common":["x1"],
-              "variable":["reference-x","reference-y","y","width","height","shape","fill","stroke","thickness","rotation"],
-              "public":["A.x","A.y","A.rotation","fill1"],
-              "bindings":[
-                  ["x1"]
-                ],
-              "components":[
-                  {
-                    "type":"Ellipse",
-                    "id":"12.1",
-                    "level":0,
-                    "reference-x":"Center",
-                    "reference-y":"Bottom",
-                    "x":0.0,
-                    "y":10.0,
-                    "width":22.0,
-                    "height":43.0,
-                    "thickness":0.5,
-                    "rotation":0.0,
-                    "fill":"0xffb3b3ff",
-                    "stroke":"0x505080ff",
-                    "shape":"Ellipse",
-                    "lock":"false"
-                  }
-                ]
+              "origin":"1.3",
+              "destination":"2.4",
+              "weight":4.0
+            },
+            {
+              "origin":"1.1",
+              "destination":"2.1",
+              "weight":30.0
+            },
+            {
+              "origin":"1.4",
+              "destination":"2.1",
+              "weight":6.0
+            },
+            {
+              "origin":"1.1",
+              "destination":"2.2",
+              "weight":6.3953488372093
+            },
+            {
+              "origin":"1.1",
+              "destination":"2.4",
+              "weight":4.0
+            },
+            {
+              "origin":"1.2",
+              "destination":"2.2",
+              "weight":10.0
+            },
+            {
+              "origin":"1.4",
+              "destination":"2.3",
+              "weight":4.0
+            },
+            {
+              "origin":"1.1",
+              "destination":"2.3",
+              "weight":4.0
             }
           ]
       }
diff --git a/src/.DS_Store b/src/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..3da40b145f8b112e32f8da3cf88ab069aabaf969
Binary files /dev/null and b/src/.DS_Store differ
diff --git a/src/fr/inria/structgraphics/.DS_Store b/src/fr/inria/structgraphics/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..76d6496dc29bcda2fc08c33a2da71eb8018b5e33
Binary files /dev/null and b/src/fr/inria/structgraphics/.DS_Store differ
diff --git a/src/fr/inria/structgraphics/VisSketcher.java b/src/fr/inria/structgraphics/VisSketcher.java
index c52e328bc5a838681abeeaf016d2b6c0cd23ad2b..7cda89bdbaa6566c8b2e58e3666ee411d2edfb3c 100644
--- a/src/fr/inria/structgraphics/VisSketcher.java
+++ b/src/fr/inria/structgraphics/VisSketcher.java
@@ -80,30 +80,16 @@ public class VisSketcher extends Application {
 			dataStage.setX(inspectStage.getX() + inspectStage.getWidth() + 10);
             dataStage.setY(inspectStage.getY());
             dataStage.show();
-            
-            /*
-		    LibraryStage libraryStage = new LibraryStage(canvasFrame);
-		    libraryStage.setX(stage.getX() - libraryStage.getWidth() - 5);
-		    libraryStage.setY(stage.getY());*/
-            		    
+                        		    
             stage.setOnCloseRequest( event -> {canvasFrame.close(); inspectStage.close(); dataStage.close();});
             inspectStage.setOnCloseRequest( event -> {canvasFrame.close(); stage.close(); dataStage.close();});
             dataStage.setOnCloseRequest( event -> {canvasFrame.close(); stage.close(); inspectStage.close();});           
-
-			// TODO: temporarry for study purposes
-			//stage.setOnCloseRequest(e->e.consume());
-			//inspectStage.setOnCloseRequest(e->e.consume());
-			//dataStage.setOnCloseRequest(e->e.consume());
-            
             
             canvasFrame.setViews( inspector, dataview);
 			canvasFrame.setMenubars(stage, inspectStage);
 			
-			TooltipCreator.hackTooltipStartTiming();
-			
+		//	TooltipCreator.hackTooltipStartTiming();
 			
-
-
 		} catch(Exception e) {
 			e.printStackTrace();
 		}
@@ -112,6 +98,5 @@ public class VisSketcher extends Application {
 	public static void main(String[] args) {				
 		launch(args);
 	}
-	
 
 }
diff --git a/src/fr/inria/structgraphics/graphics/Container.java b/src/fr/inria/structgraphics/graphics/Container.java
index 5f006af77ca2b82743f85e2c44a9eeb02ab2bc4e..ee456e3fcc7e8758a2d0d70278cfde99f382994a 100644
--- a/src/fr/inria/structgraphics/graphics/Container.java
+++ b/src/fr/inria/structgraphics/graphics/Container.java
@@ -6,8 +6,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 
-import com.sun.prism.image.Coords;
-
 import fr.inria.structgraphics.types.FlexibleListProperty;
 import fr.inria.structgraphics.types.IdentifierProperty;
 import fr.inria.structgraphics.types.PropertyName;
diff --git a/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java b/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java
index b6c0223d0b3376652bea45d686e6184bac76399a..d91a76266dbadbffe86214b24b183218ef2e593e 100644
--- a/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java
+++ b/src/fr/inria/structgraphics/ui/inspector/util/TooltipCreator.java
@@ -19,6 +19,7 @@ public class TooltipCreator {
 		return t;
 	}
 	
+	
 	// See: https://stackoverflow.com/questions/26854301/how-to-control-the-javafx-tooltips-delay
 	public static void hackTooltipStartTiming() {
 		Tooltip tooltip = new Tooltip();
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java b/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java
index 72c4ac41f278f25dec9add542c9c7acf61f00ef2..63c0ecb22c4219d48f91a42a71537ff10ce22c9e 100644
--- a/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java
+++ b/src/fr/inria/structgraphics/ui/spreadsheet/AreaInteractor.java
@@ -37,7 +37,6 @@ import fr.inria.structgraphics.ui.viscanvas.groupings.FlowConnection;
 import javafx.beans.property.Property;
 import javafx.collections.ObservableList;
 import javafx.scene.control.TablePosition;
-import sun.security.provider.certpath.CollectionCertStore;
 
 public class AreaInteractor {
 	
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java b/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java
index 52d1c28e8971d11fe2b85be166b7dfb306dd9a6c..15fef83803981a571d73a71e1179b3d39a6625a1 100644
--- a/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java
+++ b/src/fr/inria/structgraphics/ui/spreadsheet/DataView.java
@@ -8,7 +8,7 @@ import fr.inria.structgraphics.ui.inspector.DisplayUtils;
 import fr.inria.structgraphics.ui.inspector.InspectorView;
 import fr.inria.structgraphics.ui.tools.SelectTool;
 import fr.inria.structgraphics.ui.tools.Tool;
-import impl.org.controlsfx.spreadsheet.CellView;
+import impl.org.controlsfx.spreadsheet.*;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.geometry.Insets;
@@ -83,6 +83,7 @@ public class DataView extends BorderPane {
 		StackPane stack = new StackPane();
 		
 		interactor = new AreaInteractor(transformField);
+
 		spreadsheet = new Spreadsheet(this, interactor);
 			
 		stack.getChildren().setAll(spreadsheet);
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java b/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java
index fe3c3cb83d496ff885f3b21b0aa3661e692b44a5..a21d45516c342d356b395b61019283a3f5c4567e 100644
--- a/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java
+++ b/src/fr/inria/structgraphics/ui/spreadsheet/Spreadsheet.java
@@ -3,7 +3,9 @@ package fr.inria.structgraphics.ui.spreadsheet;
 import static impl.org.controlsfx.i18n.Localization.asKey;
 import static impl.org.controlsfx.i18n.Localization.localize;
 
+import java.io.IOException;
 import java.util.List;
+
 import org.controlsfx.control.spreadsheet.Grid;
 import org.controlsfx.control.spreadsheet.GridBase;
 import org.controlsfx.control.spreadsheet.SpreadsheetCell;
@@ -87,21 +89,30 @@ public class Spreadsheet extends SpreadsheetView {
 						if(!variable.scaleShownProperty.get())
 							showAxis.setText("Show on inner axis");
 						else showAxis.setText("Hide from inner axis");
-					} else showAxis.setDisable(true);
+					} else {
+						showAxis.setText("Show on inner axis");
+						showAxis.setDisable(true);
+					}
 					
 					if(!variable.getParentGroup().isEmpty() && ((variable.isX() /*&& !variable.isNested()*/) || variable.isY() || variable.isHeight() || (variable.isWidth() /*&& !variable.isNested()*/) )) { // TODO: Check if there is a parent axis!!!!
 						showParentAxis.setDisable(false);
 						if(!variable.scaleShownPropertyOuter.get())
 							showParentAxis.setText("Show on outer axis");
 						else showParentAxis.setText("Hide from outer axis");
-					} else showParentAxis.setDisable(true);
+					} else {
+						showParentAxis.setText("Show on outer axis");
+						showParentAxis.setDisable(true);
+					}
 					
 					if(/*(variable.isFill() || variable.isShape() || variable.isStroke() || variable.isThickness()) &&*/ variable.type == DataType.Symbolic) {
 						showLegend.setDisable(false);
 						if(!variable.legendShownProperty.get())
 							showLegend.setText("Show on legend");
 						else showLegend.setText("Hide from legend");	
-					} else showLegend.setDisable(true);
+					} else {
+						showLegend.setText("Show on legend");
+						showLegend.setDisable(true);
+					}
 					
 					if(variable.isID() || variable.isX() || variable.isY() || variable.isHeight() || variable.isWidth() || variable.isWeight()
 							|| variable.isStroke()) {
@@ -109,7 +120,10 @@ public class Spreadsheet extends SpreadsheetView {
 						if(!variable.nodeShownProperty.get())
 							showNode.setText("Show on glyphs");
 						else showNode.setText("Hide from glyphs");	
-					} else showNode.setDisable(true);
+					} else {
+						showNode.setText("Show on glyphs");
+						showNode.setDisable(true);
+					}
 				}
 			}
 		});
@@ -475,11 +489,9 @@ public class Spreadsheet extends SpreadsheetView {
                 showOnNode();
             }
         });
-        
-              
-        final MenuItem copyItem = new MenuItem(localize(asKey("spreadsheet.view.menu.copy"))); //$NON-NLS-1$
-        copyItem.setGraphic(new ImageView(new Image(SpreadsheetView.class
-                .getResourceAsStream("copySpreadsheetView.png")))); //$NON-NLS-1$
+                
+  	    final MenuItem copyItem = new MenuItem(localize(asKey("spreadsheet.view.menu.copy"))); //$NON-NLS-1$  
+        copyItem.setGraphic(new ImageView(new Image(Spreadsheet.class.getResourceAsStream("copySpreadsheetView.png")))); //$NON-NLS-1$
         copyItem.setAccelerator(new KeyCodeCombination(KeyCode.C, KeyCombination.SHORTCUT_DOWN));
         copyItem.setOnAction(new EventHandler<ActionEvent>() {
             @Override
@@ -489,7 +501,7 @@ public class Spreadsheet extends SpreadsheetView {
         });
 
         final MenuItem pasteItem = new MenuItem(localize(asKey("spreadsheet.view.menu.paste"))); //$NON-NLS-1$
-        pasteItem.setGraphic(new ImageView(new Image(SpreadsheetView.class
+        pasteItem.setGraphic(new ImageView(new Image(Spreadsheet.class
                 .getResourceAsStream("pasteSpreadsheetView.png")))); //$NON-NLS-1$
         pasteItem.setAccelerator(new KeyCodeCombination(KeyCode.V, KeyCombination.SHORTCUT_DOWN));
         pasteItem.setOnAction(new EventHandler<ActionEvent>() {
@@ -500,7 +512,7 @@ public class Spreadsheet extends SpreadsheetView {
         });
         
         final Menu cornerMenu = new Menu(localize(asKey("spreadsheet.view.menu.comment"))); //$NON-NLS-1$
-        cornerMenu.setGraphic(new ImageView(new Image(SpreadsheetView.class
+        cornerMenu.setGraphic(new ImageView(new Image(Spreadsheet.class
                 .getResourceAsStream("comment.png")))); //$NON-NLS-1$
 
         final MenuItem topLeftItem = new MenuItem(localize(asKey("spreadsheet.view.menu.comment.top-left"))); //$NON-NLS-1$
@@ -508,7 +520,8 @@ public class Spreadsheet extends SpreadsheetView {
 
             @Override
             public void handle(ActionEvent t) {
-                TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell();
+              //  TablePosition<ObservableList<SpreadsheetCell>, ?> pos =  getCellsView().getFocusModel().getFocusedCell();
+                TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell();
                 SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn());
                 if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.TOP_LEFT)) 
                 	cell.deactivateCorner(SpreadsheetCell.CornerPosition.TOP_LEFT);
@@ -521,7 +534,8 @@ public class Spreadsheet extends SpreadsheetView {
 
             @Override
             public void handle(ActionEvent t) {
-                TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell();
+                //TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell();
+            	TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell();
                 SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn());
                 if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.TOP_RIGHT)) 
                 	cell.deactivateCorner(SpreadsheetCell.CornerPosition.TOP_RIGHT);
@@ -533,7 +547,8 @@ public class Spreadsheet extends SpreadsheetView {
 
             @Override
             public void handle(ActionEvent t) {
-                TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell();
+                //TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell();
+            	TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell();
                 SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn());
                 if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.BOTTOM_RIGHT)) 
                 	cell.deactivateCorner(SpreadsheetCell.CornerPosition.BOTTOM_RIGHT);
@@ -545,7 +560,8 @@ public class Spreadsheet extends SpreadsheetView {
 
             @Override
             public void handle(ActionEvent t) {
-                TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell();
+                //TablePosition<ObservableList<SpreadsheetCell>, ?> pos = cellsView.getFocusModel().getFocusedCell();
+            	TablePosition<ObservableList<SpreadsheetCell>, ?> pos = getEditingCell();
                 SpreadsheetCell cell = getGrid().getRows().get(pos.getRow()).get(pos.getColumn());
                 if(cell.isCornerActivated(SpreadsheetCell.CornerPosition.BOTTOM_LEFT)) 
                 	cell.deactivateCorner(SpreadsheetCell.CornerPosition.BOTTOM_LEFT);
@@ -556,8 +572,10 @@ public class Spreadsheet extends SpreadsheetView {
         // I use corner annotations for marking visualized variables
       //  cornerMenu.getItems().addAll(topLeftItem, topRightItem, bottomRightItem, bottomLeftItem);
         
-        contextMenu.getItems().addAll(showAxis, showParentAxis, showLegend, showNode, copyItem, pasteItem /*, cornerMenu*/);
+        contextMenu.getItems().addAll(showAxis, showParentAxis, showLegend, showNode, copyItem, pasteItem);
+        
         return contextMenu;
+
     }
 
 
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java
index 78d464b5db76ac21d79ca034b9ab7b7d5e8ddef7..0db87410f8bf5e86217a335e728a181676e9beea 100644
--- a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java
+++ b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetArea.java
@@ -3,7 +3,7 @@ package fr.inria.structgraphics.ui.spreadsheet;
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.controlsfx.control.spreadsheet.Grid;
+import org.controlsfx.control.spreadsheet.*;
 
 import fr.inria.structgraphics.graphics.Container;
 import fr.inria.structgraphics.graphics.LineConnectedCollection;
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java
index 4c5ce711dd4fe7fb1b5cb1c76ccde366997d1a29..d8324fb342cfa8e16a8820027150e3fba6eb1559 100644
--- a/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java
+++ b/src/fr/inria/structgraphics/ui/spreadsheet/SpreadsheetCellAdaptable.java
@@ -2,8 +2,7 @@ package fr.inria.structgraphics.ui.spreadsheet;
 
 import com.sun.javafx.event.EventHandlerManager;
 
-import impl.org.controlsfx.spreadsheet.CellView;
-
+import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -27,6 +26,7 @@ import javafx.event.EventHandler;
 import javafx.event.EventTarget;
 import javafx.event.EventType;
 import javafx.scene.Node;
+import javafx.scene.control.MenuItem;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.input.PickResult;
@@ -279,12 +279,6 @@ public class SpreadsheetCellAdaptable implements SpreadsheetCell, EventTarget{
      * 
      **************************************************************************/
     
-    /** {@inheritDoc} */
-    @Override
-    public boolean match(SpreadsheetCell cell) {
-        return type.match(cell);
-    }
-
     // --- item
     private final ObjectProperty<Object> item = new SimpleObjectProperty<Object>(this, "item") { //$NON-NLS-1$
         @Override
@@ -693,4 +687,53 @@ public class SpreadsheetCellAdaptable implements SpreadsheetCell, EventTarget{
 		this.propertyListener = listener;
 		if(listener != null && property != null) property.addListener(listener);
 	}
+
+	@Override
+	public List<Object> getOptionsForEditor() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public List<MenuItem> getPopupItems() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean hasPopup() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean isCellGraphic() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	/*
+	@Override
+	public boolean match(Object arg0) {
+		// TODO Auto-generated method stub
+		return false;
+	}*/
+
+    /** {@inheritDoc} */
+    @Override
+    public boolean match(Object cell) {
+        return type.match(cell);
+    }
+	
+	@Override
+	public void setCellGraphic(boolean arg0) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void setHasPopup(boolean arg0) {
+		// TODO Auto-generated method stub
+		
+	}
 }
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/comment.png b/src/fr/inria/structgraphics/ui/spreadsheet/comment.png
new file mode 100644
index 0000000000000000000000000000000000000000..974c85b3a2c677ffedde2e977ce1224c5491e16e
Binary files /dev/null and b/src/fr/inria/structgraphics/ui/spreadsheet/comment.png differ
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/copySpreadsheetView.png b/src/fr/inria/structgraphics/ui/spreadsheet/copySpreadsheetView.png
new file mode 100644
index 0000000000000000000000000000000000000000..de6c54def339045f2f05589b2a7588582e393074
Binary files /dev/null and b/src/fr/inria/structgraphics/ui/spreadsheet/copySpreadsheetView.png differ
diff --git a/src/fr/inria/structgraphics/ui/spreadsheet/pasteSpreadsheetView.png b/src/fr/inria/structgraphics/ui/spreadsheet/pasteSpreadsheetView.png
new file mode 100644
index 0000000000000000000000000000000000000000..62286418d514b129a875e4e075dcd38ee8d13277
Binary files /dev/null and b/src/fr/inria/structgraphics/ui/spreadsheet/pasteSpreadsheetView.png differ
diff --git a/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java b/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java
index 465445b8e508d3372fabb369dfd963b629814adc..09b6034e0ee58152f6a0684d253150d0d22eda17 100644
--- a/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java
+++ b/src/fr/inria/structgraphics/ui/viscanvas/CanvasFrame.java
@@ -56,7 +56,6 @@ import javafx.scene.layout.VBox;
 import javafx.stage.FileChooser;
 import javafx.stage.Stage;
 import javafx.util.Duration;
-import sun.security.x509.CRLReasonCodeExtension;
 
 public class CanvasFrame extends BorderPane {
 
diff --git a/src/module-info.java b/src/module-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..d3bda7741fe3481237e68bbee3a4b115cf174b92
--- /dev/null
+++ b/src/module-info.java
@@ -0,0 +1,29 @@
+module structgraphics {
+	exports fr.inria.structgraphics.graphics;
+	exports fr.inria.structgraphics.graphics.controls;
+	exports fr.inria.structgraphics.ui;
+	exports fr.inria.structgraphics.ui.inspector.detailmodel;
+	exports fr.inria.structgraphics.types;
+	exports fr.inria.structgraphics.persistence;
+	exports fr.inria.structgraphics.ui.viscanvas;
+	exports fr.inria.structgraphics.ui.viscanvas.groupinteractors;
+	exports fr.inria.structgraphics.graphics.splines;
+	exports fr.inria.structgraphics.ui.spreadsheet;
+	exports fr.inria.structgraphics.ui.viscanvas.groupings;
+	exports fr.inria.structgraphics.ui.utils;
+	exports fr.inria.structgraphics.ui.tools;
+	exports fr.inria.structgraphics.ui.inspector.util;
+	exports fr.inria.structgraphics.ui.inspector;
+	exports fr.inria.structgraphics.ui.library;
+
+	requires java.desktop;
+	requires java.logging;
+	requires javafx.base;
+	requires javafx.controls;
+	requires javafx.graphics;
+	requires javafx.media;
+	requires javafx.web;
+	requires javax.json;
+	requires matheclipse.core;
+	requires org.controlsfx.controls;
+}
\ No newline at end of file
diff --git a/target/.gitignore b/target/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..840e7d3120ee3206168d49bf62df2c269c38e17e
--- /dev/null
+++ b/target/.gitignore
@@ -0,0 +1 @@
+/classes/