Separate playspace
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.cvsignore
index ba077a4..3184578 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.cvsignore
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.cvsignore
@@ -1 +1,3 @@
 bin
+flattened.states
+flattened.xmi
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States to XMI.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Flatten States to XMI.launch
similarity index 93%
rename from docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States to XMI.launch
rename to docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Flatten States to XMI.launch
index 7ebff3b..348b0ec 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States to XMI.launch
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Flatten States to XMI.launch
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.m2m.qvt.oml.QvtTransformation">
 <booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents1" value="true"/>
 <booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents2" value="true"/>
@@ -7,7 +7,7 @@
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName1" value=""/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName2" value=""/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.module" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvto"/>
-<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel1" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel1" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/compound.states"/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel2" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi"/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType1" value="NEW_MODEL"/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType2" value="NEW_MODEL"/>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Flatten States.launch
similarity index 93%
rename from docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States.launch
rename to docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Flatten States.launch
index d1b0858..eb7db58 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/Flatten States.launch
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Flatten States.launch
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.m2m.qvt.oml.QvtTransformation">
 <booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents1" value="true"/>
 <booleanAttribute key="org.eclipse.m2m.qvt.oml.interpreter.clearContents2" value="true"/>
@@ -7,7 +7,7 @@
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName1" value=""/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.featureName2" value=""/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.module" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/FlattenStates.qvto"/>
-<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel1" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states"/>
+<stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel1" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/compound.states"/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetModel2" value="platform:/resource/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states"/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType1" value="NEW_MODEL"/>
 <stringAttribute key="org.eclipse.m2m.qvt.oml.interpreter.targetType2" value="NEW_MODEL"/>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Generate BadSimple States.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Generate BadSimple States.launch
new file mode 100644
index 0000000..2a6bf62
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Generate BadSimple States.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.acceleo.ide.ui.launching.launchConfigurationType">
+<stringAttribute key="org.eclipse.acceleo.ide.ui.ARGUMENTS" value=""/>
+<booleanAttribute key="org.eclipse.acceleo.ide.ui.COMPUTE_PROFILING" value="false"/>
+<booleanAttribute key="org.eclipse.acceleo.ide.ui.COMPUTE_TRACEABILITY" value="false"/>
+<stringAttribute key="org.eclipse.acceleo.ide.ui.LAUNCHING_STRATEGY_DESCRIPTION" value="Acceleo Plug-in Application"/>
+<stringAttribute key="org.eclipse.acceleo.ide.ui.MODEL_PATH" value="/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badsimple.states"/>
+<stringAttribute key="org.eclipse.acceleo.ide.ui.TARGET_PATH" value="/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/badsimple/states"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ocl.tutorial.eclipsecon2011.states2classes.files.Generate"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="&quot;C:/Development/EclipseCon/runtime-EclipseApplication/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badsimple.states&quot; &quot;C:/Development/EclipseCon/runtime-EclipseApplication/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/badsimple/states&quot;"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.tutorial.eclipsecon2011.states2classes"/>
+</launchConfiguration>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Generate Flattened States.launch b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Generate Flattened States.launch
index d0f06b3..9cee24e 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Generate Flattened States.launch
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/.settings/Generate Flattened States.launch
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <launchConfiguration type="org.eclipse.acceleo.ide.ui.launching.launchConfigurationType">
 <stringAttribute key="org.eclipse.acceleo.ide.ui.ARGUMENTS" value=""/>
 <booleanAttribute key="org.eclipse.acceleo.ide.ui.COMPUTE_PROFILING" value="false"/>
@@ -13,6 +13,6 @@
 <listEntry value="1"/>
 </listAttribute>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ocl.tutorial.eclipsecon2011.states2classes.files.Generate"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="&quot;C:/Development/HartLibrary/runtime-EclipseApplication/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states&quot; &quot;C:/Development/HartLibrary/runtime-EclipseApplication/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states&quot;"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="&quot;C:/Development/EclipseCon/runtime-EclipseApplication/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states&quot; &quot;C:/Development/EclipseCon/runtime-EclipseApplication/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states&quot;"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ocl.tutorial.eclipsecon2011.states2classes"/>
 </launchConfiguration>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states
deleted file mode 100644
index 14dbe3a..0000000
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.states
+++ /dev/null
@@ -1,40 +0,0 @@
-module "flattened.compound.states"
-
-statemachine Outer
-{
-	events RIGHT LEFT START STOP;
-
-	initial state Start value 4
-	{
-		START => CompoundA_Left
-	}
-
-	state Stop value 5
-	{
-		STOP => CompoundB_Left
-	}
-
-	state CompoundA_Left value 1
-	{
-		LEFT => CompoundA_Right
-		START => Stop
-	}
-
-	state CompoundA_Right
-	{
-		RIGHT => CompoundA_Left
-		START => Stop
-	}
-
-	state CompoundB_Right
-	{
-		RIGHT => CompoundB_Left
-		STOP => Stop
-	}
-
-	state CompoundB_Left value 1
-	{
-		LEFT => CompoundB_Right
-		STOP => Stop
-	}
-}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi
deleted file mode 100644
index e54d8c4..0000000
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/flattened.xmi
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:states="http://ocl.eclipse.org/tutorial/eclipsecon2011/States">
-  <states:Module name="flattened.compound.states">
-    <machines name="Outer">
-      <events name="RIGHT"/>
-      <events name="START"/>
-      <events name="LEFT"/>
-      <events name="STOP"/>
-      <states xsi:type="states:SimpleState" initial="true" name="Start" value="4">
-        <transitions event="/0/@machines.0/@events.1" state="/0/@machines.0/@states.3"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="Stop" value="5">
-        <transitions event="/0/@machines.0/@events.3" state="/0/@machines.0/@states.5"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundA_Right">
-        <transitions event="/0/@machines.0/@events.0" state="/0/@machines.0/@states.3"/>
-        <transitions event="/0/@machines.0/@events.1" state="/0/@machines.0/@states.1"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundA_Left" value="1">
-        <transitions event="/0/@machines.0/@events.2" state="/0/@machines.0/@states.2"/>
-        <transitions event="/0/@machines.0/@events.1" state="/0/@machines.0/@states.1"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundB_Right">
-        <transitions event="/0/@machines.0/@events.0" state="/0/@machines.0/@states.5"/>
-        <transitions event="/0/@machines.0/@events.3" state="/0/@machines.0/@states.1"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundB_Left" value="1">
-        <transitions event="/0/@machines.0/@events.2" state="/0/@machines.0/@states.4"/>
-        <transitions event="/0/@machines.0/@events.3" state="/0/@machines.0/@states.1"/>
-      </states>
-    </machines>
-  </states:Module>
-  <states:Module name="flattened.compound.states">
-    <machines name="Outer">
-      <events name="RIGHT"/>
-      <events name="STOP"/>
-      <events name="LEFT"/>
-      <events name="START"/>
-      <states xsi:type="states:SimpleState" initial="true" name="Start" value="4">
-        <transitions event="/1/@machines.0/@events.3" state="/1/@machines.0/@states.3"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="Stop" value="5">
-        <transitions event="/1/@machines.0/@events.1" state="/1/@machines.0/@states.5"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundA_Right">
-        <transitions event="/1/@machines.0/@events.0" state="/1/@machines.0/@states.3"/>
-        <transitions event="/1/@machines.0/@events.3" state="/1/@machines.0/@states.1"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundA_Left" value="1">
-        <transitions event="/1/@machines.0/@events.2" state="/1/@machines.0/@states.2"/>
-        <transitions event="/1/@machines.0/@events.3" state="/1/@machines.0/@states.1"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundB_Right">
-        <transitions event="/1/@machines.0/@events.0" state="/1/@machines.0/@states.5"/>
-        <transitions event="/1/@machines.0/@events.1" state="/1/@machines.0/@states.1"/>
-      </states>
-      <states xsi:type="states:SimpleState" name="CompoundB_Left" value="1">
-        <transitions event="/1/@machines.0/@events.2" state="/1/@machines.0/@states.4"/>
-        <transitions event="/1/@machines.0/@events.1" state="/1/@machines.0/@states.1"/>
-      </states>
-    </machines>
-  </states:Module>
-</xmi:XMI>
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badcompound.states
similarity index 86%
rename from docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states
rename to docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badcompound.states
index 7e387bf..b28b0f4 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badcompound.states
@@ -7,20 +7,24 @@
 	initial state Start value 4
 	{
 		START => CompoundA
+		STOP => Stop
 	}
 
 	state Stop value 5
 	{
+		START => Start
 		STOP => CompoundB
 	}
 
 	compound state CompoundA machine Inner
 	{
 		START => Stop
+		STOP => Stop
 	}
 
 	compound state CompoundB machine Inner
 	{
+		START => Stop
 		STOP => Stop
 	}
 }
@@ -31,11 +35,11 @@
 
 	initial state Left value 1
 	{
-		LEFT => Right
+		RIGHT => Left
 	}
 
 	state Right
 	{
-		RIGHT => Left
+		LEFT => Right
 	}
 }
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badsimple.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badsimple.states
new file mode 100644
index 0000000..8782f3e
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/badsimple.states
@@ -0,0 +1,14 @@
+module "badsimple.states"
+
+statemachine Machine
+{
+    events START STOP;
+    state Start
+    {
+        STOP  => Stop
+    }
+    state Stop 
+    {
+        START  => Start
+ }  
+}
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/compound.states
similarity index 72%
copy from docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states
copy to docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/compound.states
index 7e387bf..e800c97 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.flattenstates/compound.states
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/compound.states
@@ -7,20 +7,28 @@
 	initial state Start value 4
 	{
 		START => CompoundA
+		LEFT => Start
+		RIGHT => Start
+		STOP => Stop
 	}
 
 	state Stop value 5
 	{
+		START => Start
 		STOP => CompoundB
+		LEFT => Stop
+		RIGHT => Stop
 	}
 
 	compound state CompoundA machine Inner
 	{
 		START => Stop
+		STOP => Stop
 	}
 
 	compound state CompoundB machine Inner
 	{
+		START => Stop
 		STOP => Stop
 	}
 }
@@ -32,10 +40,12 @@
 	initial state Left value 1
 	{
 		LEFT => Right
+		RIGHT => Left
 	}
 
 	state Right
 	{
+		LEFT => Right
 		RIGHT => Left
 	}
 }
\ No newline at end of file
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/simple.states b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/simple.states
index e4ccd9c..0fe2813 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/simple.states
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/model/simple.states
@@ -8,7 +8,7 @@
         START  => Start
         STOP  => Stop
     }
-    state Stop 
+    initial state Stop 
     {
         START  => Start
         STOP  => Stop
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/badsimple/states/.cvsignore b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/badsimple/states/.cvsignore
new file mode 100644
index 0000000..27d1535
--- /dev/null
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/badsimple/states/.cvsignore
@@ -0,0 +1 @@
+*.java
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Left.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Left.java
index 8022a62..1a0668c 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Left.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Left.java
@@ -7,6 +7,10 @@
     }
     public void doLEFT()
         { sm.setState(STATES.STATE_CompoundA_Right); }
+    public void doRIGHT()
+        { sm.setState(STATES.STATE_CompoundA_Left); }
+    public void doSTOP()
+        { sm.setState(STATES.STATE_Stop); }
     public void doSTART()
         { sm.setState(STATES.STATE_Stop); }
 }    
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Right.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Right.java
index 034acb4..f6ed7dd 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Right.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundA_Right.java
@@ -5,8 +5,12 @@
     public CompoundA_Right(Outer sm) {
         this.sm = sm;
     }
+    public void doLEFT()
+        { sm.setState(STATES.STATE_CompoundA_Right); }
     public void doRIGHT()
         { sm.setState(STATES.STATE_CompoundA_Left); }
+    public void doSTOP()
+        { sm.setState(STATES.STATE_Stop); }
     public void doSTART()
         { sm.setState(STATES.STATE_Stop); }
 }    
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Left.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Left.java
index 6cf97c1..232109d 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Left.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Left.java
@@ -7,6 +7,10 @@
     }
     public void doLEFT()
         { sm.setState(STATES.STATE_CompoundB_Right); }
+    public void doRIGHT()
+        { sm.setState(STATES.STATE_CompoundB_Left); }
     public void doSTOP()
         { sm.setState(STATES.STATE_Stop); }
+    public void doSTART()
+        { sm.setState(STATES.STATE_Stop); }
 }    
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Right.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Right.java
index 02d1acf..d1eac48 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Right.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/CompoundB_Right.java
@@ -5,8 +5,12 @@
     public CompoundB_Right(Outer sm) {
         this.sm = sm;
     }
+    public void doLEFT()
+        { sm.setState(STATES.STATE_CompoundB_Right); }
     public void doRIGHT()
         { sm.setState(STATES.STATE_CompoundB_Left); }
     public void doSTOP()
         { sm.setState(STATES.STATE_Stop); }
+    public void doSTART()
+        { sm.setState(STATES.STATE_Stop); }
 }    
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Outer.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Outer.java
index fffba34..37c4311 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Outer.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Outer.java
@@ -4,29 +4,29 @@
 {
     public interface State
     {
-        public void doRIGHT();
         public void doLEFT();
-        public void doSTART();
         public void doSTOP();
+        public void doRIGHT();
+        public void doSTART();
 
         enum STATES
         {
             STATE_Start,
             STATE_Stop,
-            STATE_CompoundA_Left,
             STATE_CompoundA_Right,
-            STATE_CompoundB_Right,
-            STATE_CompoundB_Left
+            STATE_CompoundA_Left,
+            STATE_CompoundB_Left,
+            STATE_CompoundB_Right
         }
     }
 
     private final State[] states = new State[] {
         new Start(this),
         new Stop(this),
-        new CompoundA_Left(this),
         new CompoundA_Right(this),
-        new CompoundB_Right(this),
-        new CompoundB_Left(this)
+        new CompoundA_Left(this),
+        new CompoundB_Left(this),
+        new CompoundB_Right(this)
     };
 
     private State state;
@@ -39,8 +39,8 @@
         this.state = states[state.ordinal()];
     }
 
-    public void doRIGHT() { state.doRIGHT(); }
     public void doLEFT() { state.doLEFT(); }
-    public void doSTART() { state.doSTART(); }
     public void doSTOP() { state.doSTOP(); }
+    public void doRIGHT() { state.doRIGHT(); }
+    public void doSTART() { state.doSTART(); }
 }    
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Start.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Start.java
index 73c323e..494b33f 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Start.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Start.java
@@ -7,4 +7,10 @@
     }
     public void doSTART()
         { sm.setState(STATES.STATE_CompoundA_Left); }
+    public void doLEFT()
+        { sm.setState(STATES.STATE_Start); }
+    public void doRIGHT()
+        { sm.setState(STATES.STATE_Start); }
+    public void doSTOP()
+        { sm.setState(STATES.STATE_Stop); }
 }    
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Stop.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Stop.java
index 9887a25..8f088c4 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Stop.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/flattened/compound/states/Stop.java
@@ -5,6 +5,12 @@
     public Stop(Outer sm) {
         this.sm = sm;
     }
+    public void doSTART()
+        { sm.setState(STATES.STATE_Start); }
     public void doSTOP()
         { sm.setState(STATES.STATE_CompoundB_Left); }
+    public void doLEFT()
+        { sm.setState(STATES.STATE_Stop); }
+    public void doRIGHT()
+        { sm.setState(STATES.STATE_Stop); }
 }    
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Machine.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Machine.java
index 3a20f5c..a7dd734 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Machine.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.playspace/src/simple/states/Machine.java
@@ -22,7 +22,7 @@
     private State state;
 
     public Machine() {
-        setState(State.STATES.STATE_org.eclipse.emf.ecore.impl.DynamicEObjectImpl@658c79 (eClass: org.eclipse.emf.ecore.impl.EClassImpl@e97bef (name: OclInvalid_Class) (instanceClassName: null) (abstract: false, interface: false)));
+        setState(State.STATES.STATE_Stop);
     }
 
     public void setState(State.STATES state) {
diff --git a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java
index d360e78..6bc6937 100644
--- a/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java
+++ b/docs/publications/EclipseCon2011Tutorial/org.eclipse.ocl.tutorial.eclipsecon2011.states2classes/src/org/eclipse/ocl/tutorial/eclipsecon2011/states2classes/files/Generate.java
@@ -43,12 +43,7 @@
 	 *
 	 * @generated
 	 */
-	public static final String[] TEMPLATE_NAMES = { "generate" };
-
-	/**
-     * The list of properties files from the launch parameters (Launch configuration).
-     */
-    private List<String> propertiesFiles = new ArrayList<String>();
+	public static final String[] TEMPLATE_NAMES = { "generate", };
 
   /**
 	 * Allows the public constructor to be used. Note that a generator created
@@ -65,8 +60,8 @@
 	 * @generated
 	 */
 	public Generate() {
-        // Empty implementation
-    }
+    // Empty implementation
+  }
 
 	/**
 	 * This allows clients to instantiates a generator with all required information.
@@ -86,8 +81,8 @@
 	 */
 	public Generate(URI modelURI, File targetFolder,
 			List<? extends Object> arguments) throws IOException {
-        initialize(modelURI, targetFolder, arguments);
-    }
+    initialize(modelURI, targetFolder, arguments);
+  }
 
 	/**
 	 * This allows clients to instantiates a generator with all required information.
@@ -107,8 +102,8 @@
 	 */
 	public Generate(EObject model, File targetFolder,
 			List<? extends Object> arguments) throws IOException {
-        initialize(model, targetFolder, arguments);
-    }
+    initialize(model, targetFolder, arguments);
+  }
 	
 	/**
 	 * This can be used to launch the generation from a standalone application.
@@ -118,45 +113,23 @@
 	 * @generated
 	 */
 	public static void main(String[] args) {
-        try {
-            if (args.length < 2) {
-                System.out.println("Arguments not valid : {model, folder}.");
-            } else {
-                URI modelURI = URI.createFileURI(args[0]);
-                File folder = new File(args[1]);
-                
-                List<String> arguments = new ArrayList<String>();
-                
-                /*
-                 * Add in this list all the arguments used by the starting point of the generation
-                 * If your main template is called on an element of your model and a String, you can
-                 * add in "arguments" this "String" attribute.
-                 */
-                
-                Generate generator = new Generate(modelURI, folder, arguments);
-                
-                /*
-                 * Add the properties from the launch arguments.
-                 * If you want to programmatically add new arguments, add them in "propertiesfiles"
-                 * You can add the absolute path of a properties files, or even a project relative path.
-                 * If you want to add another "protocol" for your properties files, please override 
-                 * "getPropertiesLoaderService(AcceleoService)" in order to return a new property loader.
-                 * The basic properties loader will look for properties in the current project if the path
-                 * of the properties file is like this "packagea.packageb.packagec.default" for a properties
-                 * file named default.properties, or if the path is an absolute path. With a new property
-                 * loader you could for example, look for properties files in a bundle.
-                 */
-                 
-                for (int i = 2; i < args.length; i++) {
-                    generator.addPropertiesFile(args[i]);
-                }
-                
-                generator.doGenerate(new BasicMonitor());
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
+    try {
+      if (args.length < 2) {
+        System.out.println("Arguments not valid : {model, folder}.");
+      } else {
+        URI modelURI = URI.createFileURI(args[0]);
+        File folder = new File(args[1]);
+        List<String> arguments = new ArrayList<String>();
+        for (int i = 2; i < args.length; i++) {
+          arguments.add(args[i]);
         }
+        Generate generator = new Generate(modelURI, folder, arguments);
+        generator.doGenerate(new BasicMonitor());
+      }
+    } catch (IOException e) {
+      e.printStackTrace();
     }
+  }
 
 	/**
 	 * Launches the generation described by this instance.
@@ -169,12 +142,12 @@
 	 */
 	@Override
 	public void doGenerate(Monitor monitor) throws IOException {
-        /*
-         * TODO if you wish to change the generation as a whole, override this.
-         * The default behavior should be sufficient in most cases.
-         */
-        super.doGenerate(monitor);
-    }
+    /*
+     * TODO if you wish to change the generation as a whole, override this.
+     * The default behavior should be sufficient in most cases.
+     */
+    super.doGenerate(monitor);
+  }
 	
 	/**
 	 * If this generator needs to listen to text generation events, listeners can be returned from here.
@@ -184,10 +157,10 @@
 	 */
 	@Override
 	public List<IAcceleoTextGenerationListener> getGenerationListeners() {
-        List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
-        // TODO if you need to listen to generation event, add listeners to the list here
-        return listeners;
-    }
+    List<IAcceleoTextGenerationListener> listeners = super.getGenerationListeners();
+    // TODO if you need to listen to generation event, add listeners to the list here
+    return listeners;
+  }
 	
 	/**
 	 * If you need to change the way files are generated, this is your entry point.
@@ -211,8 +184,8 @@
 	 * @generated
 	 */
 	public IAcceleoGenerationStrategy getGenerationStrategy() {
-        return super.getGenerationStrategy();
-    }
+    return super.getGenerationStrategy();
+  }
 	
 	/**
 	 * This will be called in order to find and load the module that will be launched through this launcher.
@@ -223,8 +196,8 @@
 	 */
 	@Override
 	public String getModuleName() {
-        return MODULE_FILE_NAME;
-    }
+    return MODULE_FILE_NAME;
+  }
 	
 	/**
 	 * If the module(s) called by this launcher require properties files, return their qualified path from
@@ -243,29 +216,18 @@
 	 */
 	@Override
 	public List<String> getProperties() {
-        /*
-         * TODO if your generation module requires access to properties files,
-         * add their qualified path to the list here. Properties files are
-         * expected to be in source folders, and the path here to be the
-         * qualified path as if referring to a Java class. For example, if you
-         * have a file named "messages.properties" in package
-         * "org.eclipse.acceleo.sample", the path that needs be added to this
-         * list is "org.eclipse.acceleo.sample.messages".
-         */
-        return propertiesFiles;
-    }
-	
-	/**
-     * Adds a properties file in the list of properties files.
-     * 
-     * @param propertiesFile
-     *            The properties file to add.
-     * @since 3.1
+    List<String> propertiesFiles = super.getProperties();
+    /*
+     * TODO if your generation module requires access to properties files,
+     * add their qualified path to the list here. Properties files are
+     * expected to be in source folders, and the path here to be the
+     * qualified path as if referring to a Java class. For example, if you
+     * have a file named "messages.properties" in package
+     * "org.eclipse.acceleo.sample", the path that needs be added to this
+     * list is "org.eclipse.acceleo.sample.messages".
      */
-    @Override
-    public void addPropertiesFile(String propertiesFile) {
-        this.propertiesFiles.add(propertiesFile);
-    }
+    return propertiesFiles;
+  }
 
   /**
 	 * This will be used to get the list of templates that are to be launched by this launcher.
@@ -275,8 +237,8 @@
 	 */
 	@Override
 	public String[] getTemplateNames() {
-        return TEMPLATE_NAMES;
-    }
+    return TEMPLATE_NAMES;
+  }
 	
 	/**
 	 * This can be used to update the resource set's package registry with all needed EPackages.
@@ -303,9 +265,9 @@
 	 */
 	@Override
 	public void registerResourceFactories(ResourceSet resourceSet) {
-        super.registerResourceFactories(resourceSet);
-        // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
-        // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
-    }
+    super.registerResourceFactories(resourceSet);
+    // TODO If you need additional resource factories registrations, do them here. The following line is an example for UML.
+    // resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
+  }
 	
 }