diff --git a/docs/connect.gaphor b/docs/connect.gaphor
new file mode 100644
index 000000000..b49bcc95f
--- /dev/null
+++ b/docs/connect.gaphor
@@ -0,0 +1,939 @@
+
+
+
+
+connect
+
+
+
+
+
+
+
+
+
+main
+
+
+
+
+
+
+
+
+* {
+ background-color: transparent;
+ color: black;
+ font-family: sans;
+ font-size: 14;
+ highlight-color: rgba(0, 0, 255, 0.4);
+ line-width: 2;
+ padding: 0;
+}
+
+diagram {
+ background-color: white;
+ line-style: normal;
+ /* line-style: sloppy 0.3; */
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[now allowed]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[not connected]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[opposite end is connected]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[relation is allowed]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[no subject]
+
+
+
+
+
+
+
+
+
+
+
+
+
+[is same]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[has subject]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Point to element
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[subject is different]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Create new model element
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[No exiting rel.]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Use existing relation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[Have existing relation]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/connect.md b/docs/connect.md
index 9628fcef0..e749c32a8 100644
--- a/docs/connect.md
+++ b/docs/connect.md
@@ -6,36 +6,7 @@ GUI point of view, a button release event is what kicks of the decision whether
the connection is allowed. Please reference the page on [Items and
Elements](items.md) if you need a reminder on the difference between the two.
-```eval_rst
-Is relation with this element allowed?
- No:
- do nothing (not even glue should have happened as the same question is
- asked there).
- Yes:
- connect_handle()
- Is opposite end connected?
-
- No:
- Do nothing
- Yes:
- Does the item already have a subject element relation?
- Yes:
- Is the previous item the same as the current?
- Yes:
- Do nothing
-
- No:
- Let subject end point to the new element
-
- No:
- Create relation or find existing relation in model
-
- Search for an existing relation in the model:
- Found:
- Use that relation
- Nothing:
- Create new model elements and connect to item
-```
+![connection chart](connect/main.svg)
The check if a connection is allowed should also check if it is valid to
create a relation to/from the same element (like associations, but not
diff --git a/docs/connect/main.svg b/docs/connect/main.svg
new file mode 100644
index 000000000..108c17e39
--- /dev/null
+++ b/docs/connect/main.svg
@@ -0,0 +1,405 @@
+
+