diff --git a/.gitignore b/.gitignore
index 0f8a231..c2065bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
diff --git a/file_combine/.gitignore b/file_combine/.gitignore
new file mode 100644
index 0000000..c2065bc
--- /dev/null
+++ b/file_combine/.gitignore
@@ -0,0 +1,37 @@
+HELP.md
+.gradle
+build/
+!gradle/wrapper/gradle-wrapper.jar
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
diff --git a/state_machine_exporter/.gitignore b/state_machine_exporter/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machine_exporter/.gitignore
+++ b/state_machine_exporter/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machine_exporter/out_simple/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration.dot b/state_machine_exporter/out_simple/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration.dot
new file mode 100644
index 0000000..f86efca
--- /dev/null
+++ b/state_machine_exporter/out_simple/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration.dot
@@ -0,0 +1,29 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ SUBMITTED_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ SUBMITTED -> SUBMITTED_choice [style=dotted, color="blue"];
+ PAID_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ PAID -> PAID_choice [style=dotted, color="green"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> SUBMITTED;
+ CANCELED [fillcolor=lightgray];
+ FULFILLED [fillcolor=lightgray];
+ SUBMITTED -> PAID [label="OrderEvents.PAY", style="solid", color="black"];
+ PAID -> FULFILLED [label="OrderEvents.FULFILL", style="solid", color="black"];
+ SUBMITTED -> CANCELED [label="OrderEvents.CANCEL [λ]", style="solid", color="black"];
+ PAID -> CANCELED [label="OrderEvents.CANCEL", style="solid", color="black"];
+ SUBMITTED -> SUBMITTED [label="OrderEvents.ABCD", style="solid", color="black"];
+ SUBMITTED_choice -> PAID2 [label="[λ] (order=0)", style="solid", color="blue"];
+ SUBMITTED_choice -> PAID3 [label="(order=1)", style="solid", color="blue"];
+ PAID_choice -> PAID1 [label="[λ] (order=0)", style="solid", color="green"];
+ PAID_choice -> PAID2 [label="[guard1] (order=1)", style="solid", color="green"];
+ PAID_choice -> HAPPEN [label="[λ] (order=2)", style="solid", color="green"];
+ PAID_choice -> PAID3 [label="(order=3)", style="solid", color="green"];
+ PAID2 -> CANCELED [style="solid", color="black"];
+ PAID3 -> CANCELED [style="solid", color="black"];
+ PAID1 -> PAID1 [label="OrderEvents.ABCD / λ, action2", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/out_simple/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration.scxml.xml b/state_machine_exporter/out_simple/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..57145e3
--- /dev/null
+++ b/state_machine_exporter/out_simple/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration/click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration.scxml.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.dot b/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.dot
new file mode 100644
index 0000000..fe3726d
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.dot
@@ -0,0 +1,67 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATE16_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATE16 -> STATE16_choice [style=dotted, color="blue"];
+ STATE17_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE17 -> STATE17_choice [style=dotted, color="green"];
+ STATE18_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE18 -> STATE18_choice [style=dotted, color="red"];
+ STATE19_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE19 -> STATE19_choice [style=dotted, color="purple"];
+ STATE20_choice [shape=diamond, label="", fillcolor="orange", width=0.2, height=0.2];
+ STATE20 -> STATE20_choice [style=dotted, color="orange"];
+ STATE11_choice [shape=diamond, label="", fillcolor="brown", width=0.2, height=0.2];
+ STATE11 -> STATE11_choice [style=dotted, color="brown"];
+ STATE12_choice [shape=diamond, label="", fillcolor="darkgreen", width=0.2, height=0.2];
+ STATE12 -> STATE12_choice [style=dotted, color="darkgreen"];
+ STATE14_choice [shape=diamond, label="", fillcolor="darkblue", width=0.2, height=0.2];
+ STATE14 -> STATE14_choice [style=dotted, color="darkblue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="blue"];
+ STATE8_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="green"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE10 -> STATE11 [label="Events.EVENT10", style="solid", color="black"];
+ STATE11 -> STATE12 [label="Events.EVENT11", style="solid", color="black"];
+ STATE12 -> STATE13 [label="Events.EVENT12", style="solid", color="black"];
+ STATE13 -> STATE14 [label="Events.EVENT13", style="solid", color="black"];
+ STATE14 -> STATE15 [label="Events.EVENT14", style="solid", color="black"];
+ STATE15 -> STATE16 [label="Events.EVENT15", style="solid", color="black"];
+ STATE16_choice -> STATE17 [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATE16_choice -> STATE18 [label="[guardVarEquals(\"value2\")] (order=1)", style="solid", color="blue"];
+ STATE16_choice -> STATE19 [label="(order=2)", style="solid", color="blue"];
+ STATE17_choice -> STATE20 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="green"];
+ STATE17_choice -> STATE16 [label="(order=1)", style="solid", color="green"];
+ STATE18_choice -> STATE19 [label="[guardVarEquals(\"value3\")] (order=0)", style="solid", color="red"];
+ STATE18_choice -> STATE20 [label="(order=1)", style="solid", color="red"];
+ STATE19_choice -> STATE1 [label="[guardVarEquals(\"reset\")] (order=0)", style="solid", color="purple"];
+ STATE19_choice -> STATE20 [label="(order=1)", style="solid", color="purple"];
+ STATE20_choice -> STATE5 [label="[guardEventHeaderEquals(\"header2\",\"bar\")] (order=0)", style="solid", color="orange"];
+ STATE20_choice -> STATE1 [label="(order=1)", style="solid", color="orange"];
+ STATE11_choice -> STATE13 [label="[guardVarEquals(\"goTo13\")] (order=0)", style="solid", color="brown"];
+ STATE11_choice -> STATE14 [label="[guardVarEquals(\"goTo14\")] (order=1)", style="solid", color="brown"];
+ STATE11_choice -> STATE15 [label="(order=2)", style="solid", color="brown"];
+ STATE12_choice -> STATE10 [label="[guardVarEquals(\"goBack10\")] (order=0)", style="solid", color="darkgreen"];
+ STATE12_choice -> STATE11 [label="(order=1)", style="solid", color="darkgreen"];
+ STATE14_choice -> STATE12 [label="[guardVarEquals(\"loop12\")] (order=0)", style="solid", color="darkblue"];
+ STATE14_choice -> STATE16 [label="(order=1)", style="solid", color="darkblue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="blue"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="blue"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="green"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="green"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.scxml.xml b/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.scxml.xml
new file mode 100644
index 0000000..801484f
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/ComplexStateMachineConfig/ComplexStateMachineConfig.scxml.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.dot
new file mode 100644
index 0000000..6ae55ce
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.dot
@@ -0,0 +1,86 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATEY_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATEY -> STATEY_choice [style=dotted, color="blue"];
+ STATE16_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE16 -> STATE16_choice [style=dotted, color="green"];
+ STATE17_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE17 -> STATE17_choice [style=dotted, color="red"];
+ STATE18_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE18 -> STATE18_choice [style=dotted, color="purple"];
+ STATE19_choice [shape=diamond, label="", fillcolor="orange", width=0.2, height=0.2];
+ STATE19 -> STATE19_choice [style=dotted, color="orange"];
+ STATE20_choice [shape=diamond, label="", fillcolor="brown", width=0.2, height=0.2];
+ STATE20 -> STATE20_choice [style=dotted, color="brown"];
+ STATE11_choice [shape=diamond, label="", fillcolor="darkgreen", width=0.2, height=0.2];
+ STATE11 -> STATE11_choice [style=dotted, color="darkgreen"];
+ STATE12_choice [shape=diamond, label="", fillcolor="darkblue", width=0.2, height=0.2];
+ STATE12 -> STATE12_choice [style=dotted, color="darkblue"];
+ STATE14_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATE14 -> STATE14_choice [style=dotted, color="blue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="green"];
+ STATE8_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="red"];
+ STATE2_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE2 -> STATE2_choice [style=dotted, color="purple"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATEZ [fillcolor=lightgray];
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE10 -> STATE11 [label="Events.EVENT10", style="solid", color="black"];
+ STATE11 -> STATE12 [label="Events.EVENT11", style="solid", color="black"];
+ STATE12 -> STATE13 [label="Events.EVENT12", style="solid", color="black"];
+ STATE13 -> STATE14 [label="Events.EVENT13", style="solid", color="black"];
+ STATE14 -> STATE15 [label="Events.EVENT14", style="solid", color="black"];
+ STATE15 -> STATE16 [label="Events.EVENT15", style="solid", color="black"];
+ STATE1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE2 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE3 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE5 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> STATEY [label="Events.EVENTY", style="solid", color="black"];
+ STATEY_choice -> STATEX [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATEY_choice -> STATEZ [label="(order=1)", style="solid", color="blue"];
+ STATE16_choice -> STATE17 [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="green"];
+ STATE16_choice -> STATE18 [label="[guardVarEquals(\"value2\")] (order=1)", style="solid", color="green"];
+ STATE16_choice -> STATE19 [label="(order=2)", style="solid", color="green"];
+ STATE17_choice -> STATE20 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="red"];
+ STATE17_choice -> STATE16 [label="(order=1)", style="solid", color="red"];
+ STATE18_choice -> STATE19 [label="[guardVarEquals(\"value3\")] (order=0)", style="solid", color="purple"];
+ STATE18_choice -> STATE20 [label="(order=1)", style="solid", color="purple"];
+ STATE19_choice -> STATE1 [label="[guardVarEquals(\"reset\")] (order=0)", style="solid", color="orange"];
+ STATE19_choice -> STATE20 [label="(order=1)", style="solid", color="orange"];
+ STATE20_choice -> STATE5 [label="[guardEventHeaderEquals(\"header2\",\"bar\")] (order=0)", style="solid", color="brown"];
+ STATE20_choice -> STATE1 [label="(order=1)", style="solid", color="brown"];
+ STATE11_choice -> STATE13 [label="[guardVarEquals(\"goTo13\")] (order=0)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE14 [label="[guardVarEquals(\"goTo14\")] (order=1)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE15 [label="(order=2)", style="solid", color="darkgreen"];
+ STATE12_choice -> STATE10 [label="[guardVarEquals(\"goBack10\")] (order=0)", style="solid", color="darkblue"];
+ STATE12_choice -> STATE11 [label="(order=1)", style="solid", color="darkblue"];
+ STATE14_choice -> STATE12 [label="[guardVarEquals(\"loop12\")] (order=0)", style="solid", color="blue"];
+ STATE14_choice -> STATE16 [label="(order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="green"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="green"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="green"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="red"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="red"];
+ STATE2 -> STATE_EXTRA_1 [label="Events.EVENTX", style="solid", color="black"];
+ STATE2_choice -> STATE1 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="purple"];
+ STATE2_choice -> STATE_EXTRA_1 [label="(order=1)", style="solid", color="purple"];
+ STATE_EXTRA_1 -> STATE_EXTRA_3 [label="Events.EVENTY", style="solid", color="black"];
+ STATE_EXTRA_1 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+ STATE_EXTRA_2 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..e16d01f
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/F1StateMachineConfiguration/F1StateMachineConfiguration.scxml.xml
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.dot
new file mode 100644
index 0000000..72f81f8
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.dot
@@ -0,0 +1,87 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATEY_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATEY -> STATEY_choice [style=dotted, color="blue"];
+ STATE16_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE16 -> STATE16_choice [style=dotted, color="green"];
+ STATE17_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE17 -> STATE17_choice [style=dotted, color="red"];
+ STATE18_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE18 -> STATE18_choice [style=dotted, color="purple"];
+ STATE19_choice [shape=diamond, label="", fillcolor="orange", width=0.2, height=0.2];
+ STATE19 -> STATE19_choice [style=dotted, color="orange"];
+ STATE20_choice [shape=diamond, label="", fillcolor="brown", width=0.2, height=0.2];
+ STATE20 -> STATE20_choice [style=dotted, color="brown"];
+ STATE11_choice [shape=diamond, label="", fillcolor="darkgreen", width=0.2, height=0.2];
+ STATE11 -> STATE11_choice [style=dotted, color="darkgreen"];
+ STATE12_choice [shape=diamond, label="", fillcolor="darkblue", width=0.2, height=0.2];
+ STATE12 -> STATE12_choice [style=dotted, color="darkblue"];
+ STATE14_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATE14 -> STATE14_choice [style=dotted, color="blue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="green"];
+ STATE8_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="red"];
+ STATE_EXTRA_1_2_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE_EXTRA_1_2 -> STATE_EXTRA_1_2_choice [style=dotted, color="purple"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATEZ [fillcolor=lightgray];
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE10 -> STATE11 [label="Events.EVENT10", style="solid", color="black"];
+ STATE11 -> STATE12 [label="Events.EVENT11", style="solid", color="black"];
+ STATE12 -> STATE13 [label="Events.EVENT12", style="solid", color="black"];
+ STATE13 -> STATE14 [label="Events.EVENT13", style="solid", color="black"];
+ STATE14 -> STATE15 [label="Events.EVENT14", style="solid", color="black"];
+ STATE15 -> STATE16 [label="Events.EVENT15", style="solid", color="black"];
+ STATE1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE2 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE3 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE5 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> STATEY [label="Events.EVENTY", style="solid", color="black"];
+ STATEY_choice -> STATEX [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATEY_choice -> STATEZ [label="(order=1)", style="solid", color="blue"];
+ STATE16_choice -> STATE17 [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="green"];
+ STATE16_choice -> STATE18 [label="[guardVarEquals(\"value2\")] (order=1)", style="solid", color="green"];
+ STATE16_choice -> STATE19 [label="(order=2)", style="solid", color="green"];
+ STATE17_choice -> STATE20 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="red"];
+ STATE17_choice -> STATE16 [label="(order=1)", style="solid", color="red"];
+ STATE18_choice -> STATE19 [label="[guardVarEquals(\"value3\")] (order=0)", style="solid", color="purple"];
+ STATE18_choice -> STATE20 [label="(order=1)", style="solid", color="purple"];
+ STATE19_choice -> STATE1 [label="[guardVarEquals(\"reset\")] (order=0)", style="solid", color="orange"];
+ STATE19_choice -> STATE20 [label="(order=1)", style="solid", color="orange"];
+ STATE20_choice -> STATE5 [label="[guardEventHeaderEquals(\"header2\",\"bar\")] (order=0)", style="solid", color="brown"];
+ STATE20_choice -> STATE1 [label="(order=1)", style="solid", color="brown"];
+ STATE11_choice -> STATE13 [label="[guardVarEquals(\"goTo13\")] (order=0)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE14 [label="[guardVarEquals(\"goTo14\")] (order=1)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE15 [label="(order=2)", style="solid", color="darkgreen"];
+ STATE12_choice -> STATE10 [label="[guardVarEquals(\"goBack10\")] (order=0)", style="solid", color="darkblue"];
+ STATE12_choice -> STATE11 [label="(order=1)", style="solid", color="darkblue"];
+ STATE14_choice -> STATE12 [label="[guardVarEquals(\"loop12\")] (order=0)", style="solid", color="blue"];
+ STATE14_choice -> STATE16 [label="(order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="green"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="green"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="green"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="red"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="red"];
+ STATE9 -> STATE_EXTRA_1_1 [label="Events.EVENT_1_1", style="solid", color="black"];
+ STATE_EXTRA_1_2_choice -> STATE_EXTRA_1_1 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="purple"];
+ STATE_EXTRA_1_2_choice -> STATE_EXTRA_1_3 [label="(order=1)", style="solid", color="purple"];
+ STATE_EXTRA_1_3 -> STATE_EXTRA_1 [label="Events.EVENT_1_2", style="solid", color="black"];
+ STATE_EXTRA_1_1 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+ STATE_EXTRA_1_2 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+ STATE_EXTRA_1 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..59a8019
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/F2StateMachineConfiguration/F2StateMachineConfiguration.scxml.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.dot b/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.dot
new file mode 100644
index 0000000..74ad2f1
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.dot
@@ -0,0 +1,18 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> START;
+ END [fillcolor=lightgray];
+ START -> FORK [label="Events.TO_FORK", style="solid", color="black"];
+ FORK -> REGION1_STATE1 [style="bold", color="green"];
+ FORK -> REGION2_STATE1 [style="bold", color="green"];
+ REGION1_STATE1 -> REGION1_STATE2 [label="Events.R1_NEXT", style="solid", color="black"];
+ REGION2_STATE1 -> REGION2_STATE2 [label="Events.R2_NEXT", style="solid", color="black"];
+ REGION1_STATE2 -> JOIN [style="bold", color="darkorange"];
+ REGION2_STATE2 -> JOIN [style="bold", color="darkorange"];
+ JOIN -> END [label="Events.TO_END", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.scxml.xml b/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.scxml.xml
new file mode 100644
index 0000000..02a5ab6
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/ForkJoinStateMachineConfig/ForkJoinStateMachineConfig.scxml.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.dot
new file mode 100644
index 0000000..e56b866
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.dot
@@ -0,0 +1,41 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATEY_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATEY -> STATEY_choice [style=dotted, color="blue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="green"];
+ STATE8_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="red"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATEZ [fillcolor=lightgray];
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE2 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE3 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE5 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> STATEY [label="Events.EVENTY", style="solid", color="black"];
+ STATEY_choice -> STATEX [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATEY_choice -> STATEZ [label="(order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="green"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="green"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="green"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="red"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="red"];
+ STATE3 -> STATE_EXTRA_2 [label="Events.EVENT_1_2", style="solid", color="black"];
+ STATE_EXTRA_2 -> STATE_EXTRA_3 [label="Events.EVENT_1_2", style="solid", color="black"];
+ STATE_EXTRA_3 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..82b2f44
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/G1StateMachineConfiguration/G1StateMachineConfiguration.scxml.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.dot
new file mode 100644
index 0000000..935a54c
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.dot
@@ -0,0 +1,42 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATEY_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATEY -> STATEY_choice [style=dotted, color="blue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="green"];
+ STATE8_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="red"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATEZ [fillcolor=lightgray];
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE2 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE3 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE5 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> STATEY [label="Events.EVENTY", style="solid", color="black"];
+ STATEY_choice -> STATEX [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATEY_choice -> STATEZ [label="(order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="green"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="green"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="green"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="red"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="red"];
+ STATE3 -> STATE_EXTRA_1 [label="Events.EVENT_1_2", style="solid", color="black"];
+ STATE_EXTRA_1 -> STATE_EXTRA_2 [label="Events.EVENT_1_3", style="solid", color="black"];
+ STATE_EXTRA_1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE_EXTRA_2 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..98b8a27
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/G2StateMachineConfiguration/G2StateMachineConfiguration.scxml.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.dot
new file mode 100644
index 0000000..0cc75e2
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.dot
@@ -0,0 +1,26 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ PAID1_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ PAID1 -> PAID1_choice [style=dotted, color="blue"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> SUBMITTED;
+ CANCELED [fillcolor=lightgray];
+ FULFILLED [fillcolor=lightgray];
+ SUBMITTED -> PAID [label="OrderEvents.PAY", style="solid", color="black"];
+ PAID -> FULFILLED [label="OrderEvents.FULFILL", style="solid", color="black"];
+ SUBMITTED -> CANCELED [label="OrderEvents.CANCEL [λ]", style="solid", color="black"];
+ PAID -> CANCELED [label="OrderEvents.CANCEL", style="solid", color="black"];
+ SUBMITTED -> SUBMITTED [label="OrderEvents.ABCD", style="solid", color="black"];
+ SUBMITTED -> PAID1 [label="OrderEvents.ABCD", style="solid", color="black"];
+ PAID1_choice -> PAID2 [label="[λ] (order=0)", style="solid", color="blue"];
+ PAID1_choice -> PAID3 [label="[guard1] (order=1)", style="solid", color="blue"];
+ PAID1_choice -> HAPPEN [label="[λ] (order=2)", style="solid", color="blue"];
+ PAID1_choice -> CANCELED [label="(order=3)", style="solid", color="blue"];
+ PAID2 -> CANCELED [style="solid", color="black"];
+ PAID3 -> CANCELED [style="solid", color="black"];
+ PAID2 -> PAID2 [label="OrderEvents.ABCD / λ, action2", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..0994d9a
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/KamilEnumStateMachineConfiguration/KamilEnumStateMachineConfiguration.scxml.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.dot
new file mode 100644
index 0000000..fa9da6c
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.dot
@@ -0,0 +1,74 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATEY_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATEY -> STATEY_choice [style=dotted, color="blue"];
+ STATE16_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE16 -> STATE16_choice [style=dotted, color="green"];
+ STATE17_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE17 -> STATE17_choice [style=dotted, color="red"];
+ STATE18_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE18 -> STATE18_choice [style=dotted, color="purple"];
+ STATE19_choice [shape=diamond, label="", fillcolor="orange", width=0.2, height=0.2];
+ STATE19 -> STATE19_choice [style=dotted, color="orange"];
+ STATE20_choice [shape=diamond, label="", fillcolor="brown", width=0.2, height=0.2];
+ STATE20 -> STATE20_choice [style=dotted, color="brown"];
+ STATE11_choice [shape=diamond, label="", fillcolor="darkgreen", width=0.2, height=0.2];
+ STATE11 -> STATE11_choice [style=dotted, color="darkgreen"];
+ STATE12_choice [shape=diamond, label="", fillcolor="darkblue", width=0.2, height=0.2];
+ STATE12 -> STATE12_choice [style=dotted, color="darkblue"];
+ STATE14_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATE14 -> STATE14_choice [style=dotted, color="blue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="green"];
+ STATE8_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="red"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATEZ [fillcolor=lightgray];
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE10 -> STATE11 [label="Events.EVENT10", style="solid", color="black"];
+ STATE11 -> STATE12 [label="Events.EVENT11", style="solid", color="black"];
+ STATE12 -> STATE13 [label="Events.EVENT12", style="solid", color="black"];
+ STATE13 -> STATE14 [label="Events.EVENT13", style="solid", color="black"];
+ STATE14 -> STATE15 [label="Events.EVENT14", style="solid", color="black"];
+ STATE15 -> STATE16 [label="Events.EVENT15", style="solid", color="black"];
+ STATE4 -> STATEY [label="Events.EVENTY", style="solid", color="black"];
+ STATEY_choice -> STATEX [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATEY_choice -> STATEZ [label="(order=1)", style="solid", color="blue"];
+ STATE16_choice -> STATE17 [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="green"];
+ STATE16_choice -> STATE18 [label="[guardVarEquals(\"value2\")] (order=1)", style="solid", color="green"];
+ STATE16_choice -> STATE19 [label="(order=2)", style="solid", color="green"];
+ STATE17_choice -> STATE20 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="red"];
+ STATE17_choice -> STATE16 [label="(order=1)", style="solid", color="red"];
+ STATE18_choice -> STATE19 [label="[guardVarEquals(\"value3\")] (order=0)", style="solid", color="purple"];
+ STATE18_choice -> STATE20 [label="(order=1)", style="solid", color="purple"];
+ STATE19_choice -> STATE1 [label="[guardVarEquals(\"reset\")] (order=0)", style="solid", color="orange"];
+ STATE19_choice -> STATE20 [label="(order=1)", style="solid", color="orange"];
+ STATE20_choice -> STATE5 [label="[guardEventHeaderEquals(\"header2\",\"bar\")] (order=0)", style="solid", color="brown"];
+ STATE20_choice -> STATE1 [label="(order=1)", style="solid", color="brown"];
+ STATE11_choice -> STATE13 [label="[guardVarEquals(\"goTo13\")] (order=0)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE14 [label="[guardVarEquals(\"goTo14\")] (order=1)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE15 [label="(order=2)", style="solid", color="darkgreen"];
+ STATE12_choice -> STATE10 [label="[guardVarEquals(\"goBack10\")] (order=0)", style="solid", color="darkblue"];
+ STATE12_choice -> STATE11 [label="(order=1)", style="solid", color="darkblue"];
+ STATE14_choice -> STATE12 [label="[guardVarEquals(\"loop12\")] (order=0)", style="solid", color="blue"];
+ STATE14_choice -> STATE16 [label="(order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="green"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="green"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="green"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="red"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="red"];
+ STATE5 -> STATE_EXTRA_1 [label="Events.EVENTX", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..e8e4569
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/OneStateMachineConfiguration/OneStateMachineConfiguration.scxml.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.dot
new file mode 100644
index 0000000..f86efca
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.dot
@@ -0,0 +1,29 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ SUBMITTED_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ SUBMITTED -> SUBMITTED_choice [style=dotted, color="blue"];
+ PAID_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ PAID -> PAID_choice [style=dotted, color="green"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> SUBMITTED;
+ CANCELED [fillcolor=lightgray];
+ FULFILLED [fillcolor=lightgray];
+ SUBMITTED -> PAID [label="OrderEvents.PAY", style="solid", color="black"];
+ PAID -> FULFILLED [label="OrderEvents.FULFILL", style="solid", color="black"];
+ SUBMITTED -> CANCELED [label="OrderEvents.CANCEL [λ]", style="solid", color="black"];
+ PAID -> CANCELED [label="OrderEvents.CANCEL", style="solid", color="black"];
+ SUBMITTED -> SUBMITTED [label="OrderEvents.ABCD", style="solid", color="black"];
+ SUBMITTED_choice -> PAID2 [label="[λ] (order=0)", style="solid", color="blue"];
+ SUBMITTED_choice -> PAID3 [label="(order=1)", style="solid", color="blue"];
+ PAID_choice -> PAID1 [label="[λ] (order=0)", style="solid", color="green"];
+ PAID_choice -> PAID2 [label="[guard1] (order=1)", style="solid", color="green"];
+ PAID_choice -> HAPPEN [label="[λ] (order=2)", style="solid", color="green"];
+ PAID_choice -> PAID3 [label="(order=3)", style="solid", color="green"];
+ PAID2 -> CANCELED [style="solid", color="black"];
+ PAID3 -> CANCELED [style="solid", color="black"];
+ PAID1 -> PAID1 [label="OrderEvents.ABCD / λ, action2", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..57145e3
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/SimpleEnumStateMachineConfiguration/SimpleEnumStateMachineConfiguration.scxml.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.dot
new file mode 100644
index 0000000..6ae55ce
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.dot
@@ -0,0 +1,86 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATEY_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATEY -> STATEY_choice [style=dotted, color="blue"];
+ STATE16_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE16 -> STATE16_choice [style=dotted, color="green"];
+ STATE17_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE17 -> STATE17_choice [style=dotted, color="red"];
+ STATE18_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE18 -> STATE18_choice [style=dotted, color="purple"];
+ STATE19_choice [shape=diamond, label="", fillcolor="orange", width=0.2, height=0.2];
+ STATE19 -> STATE19_choice [style=dotted, color="orange"];
+ STATE20_choice [shape=diamond, label="", fillcolor="brown", width=0.2, height=0.2];
+ STATE20 -> STATE20_choice [style=dotted, color="brown"];
+ STATE11_choice [shape=diamond, label="", fillcolor="darkgreen", width=0.2, height=0.2];
+ STATE11 -> STATE11_choice [style=dotted, color="darkgreen"];
+ STATE12_choice [shape=diamond, label="", fillcolor="darkblue", width=0.2, height=0.2];
+ STATE12 -> STATE12_choice [style=dotted, color="darkblue"];
+ STATE14_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATE14 -> STATE14_choice [style=dotted, color="blue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="green"];
+ STATE8_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="red"];
+ STATE2_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE2 -> STATE2_choice [style=dotted, color="purple"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATEZ [fillcolor=lightgray];
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE10 -> STATE11 [label="Events.EVENT10", style="solid", color="black"];
+ STATE11 -> STATE12 [label="Events.EVENT11", style="solid", color="black"];
+ STATE12 -> STATE13 [label="Events.EVENT12", style="solid", color="black"];
+ STATE13 -> STATE14 [label="Events.EVENT13", style="solid", color="black"];
+ STATE14 -> STATE15 [label="Events.EVENT14", style="solid", color="black"];
+ STATE15 -> STATE16 [label="Events.EVENT15", style="solid", color="black"];
+ STATE1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE2 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE3 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE5 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> STATEY [label="Events.EVENTY", style="solid", color="black"];
+ STATEY_choice -> STATEX [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATEY_choice -> STATEZ [label="(order=1)", style="solid", color="blue"];
+ STATE16_choice -> STATE17 [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="green"];
+ STATE16_choice -> STATE18 [label="[guardVarEquals(\"value2\")] (order=1)", style="solid", color="green"];
+ STATE16_choice -> STATE19 [label="(order=2)", style="solid", color="green"];
+ STATE17_choice -> STATE20 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="red"];
+ STATE17_choice -> STATE16 [label="(order=1)", style="solid", color="red"];
+ STATE18_choice -> STATE19 [label="[guardVarEquals(\"value3\")] (order=0)", style="solid", color="purple"];
+ STATE18_choice -> STATE20 [label="(order=1)", style="solid", color="purple"];
+ STATE19_choice -> STATE1 [label="[guardVarEquals(\"reset\")] (order=0)", style="solid", color="orange"];
+ STATE19_choice -> STATE20 [label="(order=1)", style="solid", color="orange"];
+ STATE20_choice -> STATE5 [label="[guardEventHeaderEquals(\"header2\",\"bar\")] (order=0)", style="solid", color="brown"];
+ STATE20_choice -> STATE1 [label="(order=1)", style="solid", color="brown"];
+ STATE11_choice -> STATE13 [label="[guardVarEquals(\"goTo13\")] (order=0)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE14 [label="[guardVarEquals(\"goTo14\")] (order=1)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE15 [label="(order=2)", style="solid", color="darkgreen"];
+ STATE12_choice -> STATE10 [label="[guardVarEquals(\"goBack10\")] (order=0)", style="solid", color="darkblue"];
+ STATE12_choice -> STATE11 [label="(order=1)", style="solid", color="darkblue"];
+ STATE14_choice -> STATE12 [label="[guardVarEquals(\"loop12\")] (order=0)", style="solid", color="blue"];
+ STATE14_choice -> STATE16 [label="(order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="green"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="green"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="green"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="red"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="red"];
+ STATE2 -> STATE_EXTRA_1 [label="Events.EVENTX", style="solid", color="black"];
+ STATE2_choice -> STATE1 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="purple"];
+ STATE2_choice -> STATE_EXTRA_1 [label="(order=1)", style="solid", color="purple"];
+ STATE_EXTRA_1 -> STATE_EXTRA_3 [label="Events.EVENTY", style="solid", color="black"];
+ STATE_EXTRA_1 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+ STATE_EXTRA_2 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..e16d01f
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/ThreeStateMachineConfiguration/ThreeStateMachineConfiguration.scxml.xml
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.dot b/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.dot
new file mode 100644
index 0000000..251d169
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.dot
@@ -0,0 +1,81 @@
+digraph statemachine {
+ rankdir=LR;
+ node [shape=rounded, style=filled, fillcolor=white, fontname="Arial"];
+ edge [fontname="Arial", fontsize=10];
+
+ STATEY_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATEY -> STATEY_choice [style=dotted, color="blue"];
+ STATE16_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE16 -> STATE16_choice [style=dotted, color="green"];
+ STATE17_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE17 -> STATE17_choice [style=dotted, color="red"];
+ STATE18_choice [shape=diamond, label="", fillcolor="purple", width=0.2, height=0.2];
+ STATE18 -> STATE18_choice [style=dotted, color="purple"];
+ STATE19_choice [shape=diamond, label="", fillcolor="orange", width=0.2, height=0.2];
+ STATE19 -> STATE19_choice [style=dotted, color="orange"];
+ STATE20_choice [shape=diamond, label="", fillcolor="brown", width=0.2, height=0.2];
+ STATE20 -> STATE20_choice [style=dotted, color="brown"];
+ STATE11_choice [shape=diamond, label="", fillcolor="darkgreen", width=0.2, height=0.2];
+ STATE11 -> STATE11_choice [style=dotted, color="darkgreen"];
+ STATE12_choice [shape=diamond, label="", fillcolor="darkblue", width=0.2, height=0.2];
+ STATE12 -> STATE12_choice [style=dotted, color="darkblue"];
+ STATE14_choice [shape=diamond, label="", fillcolor="blue", width=0.2, height=0.2];
+ STATE14 -> STATE14_choice [style=dotted, color="blue"];
+ STATE9_choice [shape=diamond, label="", fillcolor="green", width=0.2, height=0.2];
+ STATE9 -> STATE9_choice [style=dotted, color="green"];
+ STATE8_choice [shape=diamond, label="", fillcolor="red", width=0.2, height=0.2];
+ STATE8 -> STATE8_choice [style=dotted, color="red"];
+ _start [shape=circle, label="", fillcolor=black, width=0.1];
+ _start -> STATE1;
+ STATEZ [fillcolor=lightgray];
+ STATE1 -> STATE2 [label="Events.EVENT1", style="solid", color="black"];
+ STATE2 -> STATE3 [label="Events.EVENT2", style="solid", color="black"];
+ STATE3 -> STATE4 [label="Events.EVENT3", style="solid", color="black"];
+ STATE4 -> STATE5 [label="Events.EVENT4", style="solid", color="black"];
+ STATE5 -> STATE6 [label="Events.EVENT5", style="solid", color="black"];
+ STATE6 -> STATE7 [label="Events.EVENT6", style="solid", color="black"];
+ STATE7 -> STATE8 [label="Events.EVENT7", style="solid", color="black"];
+ STATE8 -> STATE9 [label="Events.EVENT8", style="solid", color="black"];
+ STATE9 -> STATE10 [label="Events.EVENT9", style="solid", color="black"];
+ STATE10 -> STATE11 [label="Events.EVENT10", style="solid", color="black"];
+ STATE11 -> STATE12 [label="Events.EVENT11", style="solid", color="black"];
+ STATE12 -> STATE13 [label="Events.EVENT12", style="solid", color="black"];
+ STATE13 -> STATE14 [label="Events.EVENT13", style="solid", color="black"];
+ STATE14 -> STATE15 [label="Events.EVENT14", style="solid", color="black"];
+ STATE15 -> STATE16 [label="Events.EVENT15", style="solid", color="black"];
+ STATE1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE2 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE3 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE5 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE4 -> STATEY [label="Events.EVENTY", style="solid", color="black"];
+ STATEY_choice -> STATEX [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="blue"];
+ STATEY_choice -> STATEZ [label="(order=1)", style="solid", color="blue"];
+ STATE16_choice -> STATE17 [label="[guardVarEquals(\"value1\")] (order=0)", style="solid", color="green"];
+ STATE16_choice -> STATE18 [label="[guardVarEquals(\"value2\")] (order=1)", style="solid", color="green"];
+ STATE16_choice -> STATE19 [label="(order=2)", style="solid", color="green"];
+ STATE17_choice -> STATE20 [label="[guardEventHeaderEquals(\"header1\",\"foo\")] (order=0)", style="solid", color="red"];
+ STATE17_choice -> STATE16 [label="(order=1)", style="solid", color="red"];
+ STATE18_choice -> STATE19 [label="[guardVarEquals(\"value3\")] (order=0)", style="solid", color="purple"];
+ STATE18_choice -> STATE20 [label="(order=1)", style="solid", color="purple"];
+ STATE19_choice -> STATE1 [label="[guardVarEquals(\"reset\")] (order=0)", style="solid", color="orange"];
+ STATE19_choice -> STATE20 [label="(order=1)", style="solid", color="orange"];
+ STATE20_choice -> STATE5 [label="[guardEventHeaderEquals(\"header2\",\"bar\")] (order=0)", style="solid", color="brown"];
+ STATE20_choice -> STATE1 [label="(order=1)", style="solid", color="brown"];
+ STATE11_choice -> STATE13 [label="[guardVarEquals(\"goTo13\")] (order=0)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE14 [label="[guardVarEquals(\"goTo14\")] (order=1)", style="solid", color="darkgreen"];
+ STATE11_choice -> STATE15 [label="(order=2)", style="solid", color="darkgreen"];
+ STATE12_choice -> STATE10 [label="[guardVarEquals(\"goBack10\")] (order=0)", style="solid", color="darkblue"];
+ STATE12_choice -> STATE11 [label="(order=1)", style="solid", color="darkblue"];
+ STATE14_choice -> STATE12 [label="[guardVarEquals(\"loop12\")] (order=0)", style="solid", color="blue"];
+ STATE14_choice -> STATE16 [label="(order=1)", style="solid", color="blue"];
+ STATE9_choice -> STATE8 [label="[guardVarEquals(\"stepBack\")] (order=0)", style="solid", color="green"];
+ STATE9_choice -> STATE7 [label="[guardVarEquals(\"stepBackMore\")] (order=1)", style="solid", color="green"];
+ STATE9_choice -> STATE6 [label="(order=2)", style="solid", color="green"];
+ STATE8_choice -> STATE9 [label="[guardVarEquals(\"forward9\")] (order=0)", style="solid", color="red"];
+ STATE8_choice -> STATE10 [label="(order=1)", style="solid", color="red"];
+ STATE5 -> STATE_EXTRA_1 [label="Events.EVENTX", style="solid", color="black"];
+ STATE_EXTRA_1 -> CANCEL [label="Events.EVENT_CANCEL", style="solid", color="black"];
+ STATE_EXTRA_1 -> CANCEL [label="Events.EVENT_CANCEL_2", style="solid", color="black"];
+}
+
diff --git a/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.scxml.xml b/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.scxml.xml
new file mode 100644
index 0000000..7ff6a7e
--- /dev/null
+++ b/state_machine_exporter/src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration/TwoStateMachineConfiguration.scxml.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/state_machine_exporter_spring_based/.gitignore b/state_machine_exporter_spring_based/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machine_exporter_spring_based/.gitignore
+++ b/state_machine_exporter_spring_based/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/complex_state_machine/.gitignore b/state_machines/complex_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/complex_state_machine/.gitignore
+++ b/state_machines/complex_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/dynamic_state_machine/.gitignore b/state_machines/dynamic_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/dynamic_state_machine/.gitignore
+++ b/state_machines/dynamic_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/enumstate_state_machine/.gitignore b/state_machines/enumstate_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/enumstate_state_machine/.gitignore
+++ b/state_machines/enumstate_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/forkjoin_state_machine/.gitignore b/state_machines/forkjoin_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/forkjoin_state_machine/.gitignore
+++ b/state_machines/forkjoin_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/inheritance_extra_functions2_state_machine/.gitignore b/state_machines/inheritance_extra_functions2_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/inheritance_extra_functions2_state_machine/.gitignore
+++ b/state_machines/inheritance_extra_functions2_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/inheritance_extra_functions3_state_machine/.gitignore b/state_machines/inheritance_extra_functions3_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/inheritance_extra_functions3_state_machine/.gitignore
+++ b/state_machines/inheritance_extra_functions3_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/inheritance_extra_functions_state_machine/.gitignore b/state_machines/inheritance_extra_functions_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/inheritance_extra_functions_state_machine/.gitignore
+++ b/state_machines/inheritance_extra_functions_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/inheritance_state_machine/.gitignore b/state_machines/inheritance_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/inheritance_state_machine/.gitignore
+++ b/state_machines/inheritance_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file
diff --git a/state_machines/simple_state_machine/.gitignore b/state_machines/simple_state_machine/.gitignore
index c022c2a..c2065bc 100644
--- a/state_machines/simple_state_machine/.gitignore
+++ b/state_machines/simple_state_machine/.gitignore
@@ -35,11 +35,3 @@ out/
### VS Code ###
.vscode/
-
-
-
-#### added
-*.png
-*.dot
-*.scxml.xml
-Combined.java
\ No newline at end of file