diff --git a/build.txt b/build.txt
index f6b4b4266db27d9f41a39754e8c428d2a5583d45..78cc597f0e63edb3fa93d42e136ffcb95d41ca0f 100644
--- a/build.txt
+++ b/build.txt
@@ -1 +1 @@
-12708
\ No newline at end of file
+12715
\ No newline at end of file
diff --git a/modeling/AVATAR/testReq.xml b/modeling/AVATAR/testReq.xml
index e69993f1eae34c1082f8500a2d0cb5fc8adf5dc6..49c6e4cdc6c702829cdae07bfc08dbf2f7b23e96 100644
--- a/modeling/AVATAR/testReq.xml
+++ b/modeling/AVATAR/testReq.xml
@@ -139,7 +139,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
 <TGConnectingPoint num="0" id="77" />
-<P1  x="559" y="330" id="139" />
+<P1  x="559" y="330" id="114" />
 <P2  x="560" y="377" id="172" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -169,7 +169,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Block1 to Block0" value="" />
 <TGConnectingPoint num="0" id="81" />
-<P1  x="789" y="326" id="114" />
+<P1  x="789" y="326" id="139" />
 <P2  x="790" y="377" id="173" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -270,11 +270,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5000" id="132" >
 <father id="182" num="0" />
-<cdparam x="695" y="224" />
-<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="464" y="228" />
+<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
-<infoparam name="Block1" value="TeaButton" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
+<infoparam name="Block1" value="CoffeeButton" />
 <TGConnectingPoint num="0" id="108" />
 <TGConnectingPoint num="1" id="109" />
 <TGConnectingPoint num="2" id="110" />
@@ -308,11 +308,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5000" id="157" >
 <father id="182" num="1" />
-<cdparam x="464" y="228" />
-<sizeparam width="190" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="695" y="224" />
+<sizeparam width="189" height="102" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="256" />
-<infoparam name="Block1" value="CoffeeButton" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="256" />
+<infoparam name="Block1" value="TeaButton" />
 <TGConnectingPoint num="0" id="133" />
 <TGConnectingPoint num="1" id="134" />
 <TGConnectingPoint num="2" id="135" />
@@ -740,7 +740,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="378" />
-<P1  x="442" y="527" id="729" />
+<P1  x="442" y="527" id="794" />
 <P2  x="323" y="748" id="655" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="377" >
@@ -770,8 +770,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="385" />
-<P1  x="326" y="457" id="756" />
-<P2  x="442" y="497" id="728" />
+<P1  x="326" y="457" id="743" />
+<P2  x="442" y="497" id="793" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="384" >
 <father id="386" num="0" />
@@ -799,7 +799,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="392" />
-<P1  x="298" y="554" id="794" />
+<P1  x="298" y="554" id="729" />
 <P2  x="289" y="748" id="647" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="391" >
@@ -830,8 +830,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="399" />
-<P1  x="293" y="477" id="767" />
-<P2  x="298" y="524" id="793" />
+<P1  x="293" y="477" id="754" />
+<P2  x="298" y="524" id="728" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="398" >
 <father id="400" num="0" />
@@ -859,7 +859,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Send signal to stop state" value="null" />
 <TGConnectingPoint num="0" id="406" />
-<P1  x="126" y="554" id="740" />
+<P1  x="126" y="554" id="783" />
 <P2  x="255" y="748" id="654" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="405" >
@@ -890,8 +890,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="413" />
-<P1  x="227" y="477" id="766" />
-<P2  x="126" y="524" id="739" />
+<P1  x="227" y="477" id="753" />
+<P2  x="126" y="524" id="782" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="412" >
 <father id="414" num="0" />
@@ -919,8 +919,8 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to state0" value="null" />
 <TGConnectingPoint num="0" id="420" />
-<P1  x="261" y="421" id="750" />
-<P2  x="260" y="437" id="753" />
+<P1  x="261" y="421" id="780" />
+<P2  x="260" y="437" id="740" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="419" >
 <father id="421" num="0" />
@@ -1540,13 +1540,13 @@
 <extraparam>
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="5103" id="738" >
+<SUBCOMPONENT type="5104" id="738" >
 <father id="844" num="0" />
-<cdparam x="377" y="502" />
-<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="242" y="529" />
+<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
-<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
+<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushTeaButton()" />
 <TGConnectingPoint num="0" id="728" />
 <TGConnectingPoint num="1" id="729" />
 <TGConnectingPoint num="2" id="730" />
@@ -1559,13 +1559,13 @@
 <TGConnectingPoint num="9" id="737" />
 <accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="749" >
+<SUBCOMPONENT type="5106" id="779" >
 <father id="844" num="1" />
-<cdparam x="63" y="529" />
-<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="194" y="437" />
+<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
-<infoparam name="Send signal" value="pushCoffeeButton()" />
+<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
+<infoparam name="state0" value="WaitingForSelection" />
 <TGConnectingPoint num="0" id="739" />
 <TGConnectingPoint num="1" id="740" />
 <TGConnectingPoint num="2" id="741" />
@@ -1576,75 +1576,75 @@
 <TGConnectingPoint num="7" id="746" />
 <TGConnectingPoint num="8" id="747" />
 <TGConnectingPoint num="9" id="748" />
-<accessibility />
+<TGConnectingPoint num="10" id="749" />
+<TGConnectingPoint num="11" id="750" />
+<TGConnectingPoint num="12" id="751" />
+<TGConnectingPoint num="13" id="752" />
+<TGConnectingPoint num="14" id="753" />
+<TGConnectingPoint num="15" id="754" />
+<TGConnectingPoint num="16" id="755" />
+<TGConnectingPoint num="17" id="756" />
+<TGConnectingPoint num="18" id="757" />
+<TGConnectingPoint num="19" id="758" />
+<TGConnectingPoint num="20" id="759" />
+<TGConnectingPoint num="21" id="760" />
+<TGConnectingPoint num="22" id="761" />
+<TGConnectingPoint num="23" id="762" />
+<TGConnectingPoint num="24" id="763" />
+<TGConnectingPoint num="25" id="764" />
+<TGConnectingPoint num="26" id="765" />
+<TGConnectingPoint num="27" id="766" />
+<TGConnectingPoint num="28" id="767" />
+<TGConnectingPoint num="29" id="768" />
+<TGConnectingPoint num="30" id="769" />
+<TGConnectingPoint num="31" id="770" />
+<TGConnectingPoint num="32" id="771" />
+<TGConnectingPoint num="33" id="772" />
+<TGConnectingPoint num="34" id="773" />
+<TGConnectingPoint num="35" id="774" />
+<TGConnectingPoint num="36" id="775" />
+<TGConnectingPoint num="37" id="776" />
+<TGConnectingPoint num="38" id="777" />
+<TGConnectingPoint num="39" id="778" />
+<latencyCheck />
+<extraparam>
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5100" id="751" >
+<SUBCOMPONENT type="5100" id="781" >
 <father id="844" num="2" />
 <cdparam x="254" y="401" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="562" minY="0" maxY="339" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="750" />
+<TGConnectingPoint num="0" id="780" />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5106" id="792" >
+<SUBCOMPONENT type="5104" id="792" >
 <father id="844" num="3" />
-<cdparam x="194" y="437" />
-<sizeparam width="132" height="40" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="63" y="529" />
+<sizeparam width="127" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="445" minY="0" maxY="314" />
-<infoparam name="state0" value="WaitingForSelection" />
-<TGConnectingPoint num="0" id="752" />
-<TGConnectingPoint num="1" id="753" />
-<TGConnectingPoint num="2" id="754" />
-<TGConnectingPoint num="3" id="755" />
-<TGConnectingPoint num="4" id="756" />
-<TGConnectingPoint num="5" id="757" />
-<TGConnectingPoint num="6" id="758" />
-<TGConnectingPoint num="7" id="759" />
-<TGConnectingPoint num="8" id="760" />
-<TGConnectingPoint num="9" id="761" />
-<TGConnectingPoint num="10" id="762" />
-<TGConnectingPoint num="11" id="763" />
-<TGConnectingPoint num="12" id="764" />
-<TGConnectingPoint num="13" id="765" />
-<TGConnectingPoint num="14" id="766" />
-<TGConnectingPoint num="15" id="767" />
-<TGConnectingPoint num="16" id="768" />
-<TGConnectingPoint num="17" id="769" />
-<TGConnectingPoint num="18" id="770" />
-<TGConnectingPoint num="19" id="771" />
-<TGConnectingPoint num="20" id="772" />
-<TGConnectingPoint num="21" id="773" />
-<TGConnectingPoint num="22" id="774" />
-<TGConnectingPoint num="23" id="775" />
-<TGConnectingPoint num="24" id="776" />
-<TGConnectingPoint num="25" id="777" />
-<TGConnectingPoint num="26" id="778" />
-<TGConnectingPoint num="27" id="779" />
-<TGConnectingPoint num="28" id="780" />
-<TGConnectingPoint num="29" id="781" />
-<TGConnectingPoint num="30" id="782" />
-<TGConnectingPoint num="31" id="783" />
-<TGConnectingPoint num="32" id="784" />
-<TGConnectingPoint num="33" id="785" />
-<TGConnectingPoint num="34" id="786" />
-<TGConnectingPoint num="35" id="787" />
-<TGConnectingPoint num="36" id="788" />
-<TGConnectingPoint num="37" id="789" />
-<TGConnectingPoint num="38" id="790" />
-<TGConnectingPoint num="39" id="791" />
-<latencyCheck />
-<extraparam>
-</extraparam>
+<cdrectangleparam minX="0" maxX="450" minY="0" maxY="334" />
+<infoparam name="Send signal" value="pushCoffeeButton()" />
+<TGConnectingPoint num="0" id="782" />
+<TGConnectingPoint num="1" id="783" />
+<TGConnectingPoint num="2" id="784" />
+<TGConnectingPoint num="3" id="785" />
+<TGConnectingPoint num="4" id="786" />
+<TGConnectingPoint num="5" id="787" />
+<TGConnectingPoint num="6" id="788" />
+<TGConnectingPoint num="7" id="789" />
+<TGConnectingPoint num="8" id="790" />
+<TGConnectingPoint num="9" id="791" />
+<accessibility />
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5104" id="803" >
+<SUBCOMPONENT type="5103" id="803" >
 <father id="844" num="4" />
-<cdparam x="242" y="529" />
-<sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="377" y="502" />
+<sizeparam width="130" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="465" minY="0" maxY="334" />
-<infoparam name="Send signal" value="pushTeaButton()" />
+<cdrectangleparam minX="0" maxX="447" minY="0" maxY="334" />
+<infoparam name="Send signal" value="ejectCoin(nbOfCoins)" />
 <TGConnectingPoint num="0" id="793" />
 <TGConnectingPoint num="1" id="794" />
 <TGConnectingPoint num="2" id="795" />
@@ -1661,19 +1661,19 @@
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
 <CONNECTOR type="5102" id="851" >
-<cdparam x="177" y="199" />
+<cdparam x="363" y="193" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to Send signal" value="null" />
+<infoparam name="connector from Send signal to state0" value="null" />
 <TGConnectingPoint num="0" id="850" />
-<P1  x="340" y="233" id="957" />
-<P2  x="353" y="252" id="959" />
+<P1  x="363" y="204" id="867" />
+<P2  x="362" y="257" id="878" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="849" >
 <father id="851" num="0" />
-<cdparam x="177" y="239" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="380" y="228" />
+<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -1683,7 +1683,7 @@
 <TGConnectingPoint num="3" id="848" />
 <extraparam>
 <guard value="[ ]" />
-<afterMin value="" />
+<afterMin value="mechanicalDelay" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
@@ -1692,16 +1692,16 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="858" >
-<cdparam x="322" y="69" />
+<cdparam x="363" y="150" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
+<infoparam name="connector from state0 to Send signal" value="null" />
 <TGConnectingPoint num="0" id="857" />
-<P1  x="322" y="69" id="955" />
-<P2  x="323" y="88" id="915" />
+<P1  x="363" y="150" id="924" />
+<P2  x="363" y="174" id="866" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="856" >
 <father id="858" num="0" />
-<cdparam x="322" y="109" />
+<cdparam x="363" y="190" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -1721,16 +1721,16 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="865" >
-<cdparam x="377" y="144" />
+<cdparam x="362" y="101" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to Send signal" value="null" />
+<infoparam name="connector from start state to state0" value="null" />
 <TGConnectingPoint num="0" id="864" />
-<P1  x="323" y="118" id="920" />
-<P2  x="356" y="174" id="971" />
+<P1  x="362" y="101" id="959" />
+<P2  x="363" y="120" id="919" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="863" >
 <father id="865" num="0" />
-<cdparam x="377" y="184" />
+<cdparam x="362" y="141" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
@@ -1749,247 +1749,159 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="872" >
-<cdparam x="377" y="187" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="871" />
-<P1  x="353" y="282" id="960" />
-<P2  x="399" y="352" id="874" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="870" >
-<father id="872" num="0" />
-<cdparam x="417" y="335" />
-<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5103" id="876" >
+<cdparam x="338" y="179" />
+<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<infoparam name="Send signal" value="push()" />
 <TGConnectingPoint num="0" id="866" />
 <TGConnectingPoint num="1" id="867" />
 <TGConnectingPoint num="2" id="868" />
 <TGConnectingPoint num="3" id="869" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="mechanicalDelay" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<probability value="" />
-</extraparam>
-</SUBCOMPONENT>
+<TGConnectingPoint num="4" id="870" />
+<TGConnectingPoint num="5" id="871" />
+<TGConnectingPoint num="6" id="872" />
+<TGConnectingPoint num="7" id="873" />
+<TGConnectingPoint num="8" id="874" />
+<TGConnectingPoint num="9" id="875" />
+</COMPONENT>
 
-<COMPONENT type="5106" id="913" >
-<cdparam x="374" y="352" />
+<COMPONENT type="5106" id="917" >
+<cdparam x="337" y="257" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="873" />
-<TGConnectingPoint num="1" id="874" />
-<TGConnectingPoint num="2" id="875" />
-<TGConnectingPoint num="3" id="876" />
-<TGConnectingPoint num="4" id="877" />
-<TGConnectingPoint num="5" id="878" />
-<TGConnectingPoint num="6" id="879" />
-<TGConnectingPoint num="7" id="880" />
-<TGConnectingPoint num="8" id="881" />
-<TGConnectingPoint num="9" id="882" />
-<TGConnectingPoint num="10" id="883" />
-<TGConnectingPoint num="11" id="884" />
-<TGConnectingPoint num="12" id="885" />
-<TGConnectingPoint num="13" id="886" />
-<TGConnectingPoint num="14" id="887" />
-<TGConnectingPoint num="15" id="888" />
-<TGConnectingPoint num="16" id="889" />
-<TGConnectingPoint num="17" id="890" />
-<TGConnectingPoint num="18" id="891" />
-<TGConnectingPoint num="19" id="892" />
-<TGConnectingPoint num="20" id="893" />
-<TGConnectingPoint num="21" id="894" />
-<TGConnectingPoint num="22" id="895" />
-<TGConnectingPoint num="23" id="896" />
-<TGConnectingPoint num="24" id="897" />
-<TGConnectingPoint num="25" id="898" />
-<TGConnectingPoint num="26" id="899" />
-<TGConnectingPoint num="27" id="900" />
-<TGConnectingPoint num="28" id="901" />
-<TGConnectingPoint num="29" id="902" />
-<TGConnectingPoint num="30" id="903" />
-<TGConnectingPoint num="31" id="904" />
-<TGConnectingPoint num="32" id="905" />
-<TGConnectingPoint num="33" id="906" />
-<TGConnectingPoint num="34" id="907" />
-<TGConnectingPoint num="35" id="908" />
-<TGConnectingPoint num="36" id="909" />
-<TGConnectingPoint num="37" id="910" />
-<TGConnectingPoint num="38" id="911" />
-<TGConnectingPoint num="39" id="912" />
+<TGConnectingPoint num="0" id="877" />
+<TGConnectingPoint num="1" id="878" />
+<TGConnectingPoint num="2" id="879" />
+<TGConnectingPoint num="3" id="880" />
+<TGConnectingPoint num="4" id="881" />
+<TGConnectingPoint num="5" id="882" />
+<TGConnectingPoint num="6" id="883" />
+<TGConnectingPoint num="7" id="884" />
+<TGConnectingPoint num="8" id="885" />
+<TGConnectingPoint num="9" id="886" />
+<TGConnectingPoint num="10" id="887" />
+<TGConnectingPoint num="11" id="888" />
+<TGConnectingPoint num="12" id="889" />
+<TGConnectingPoint num="13" id="890" />
+<TGConnectingPoint num="14" id="891" />
+<TGConnectingPoint num="15" id="892" />
+<TGConnectingPoint num="16" id="893" />
+<TGConnectingPoint num="17" id="894" />
+<TGConnectingPoint num="18" id="895" />
+<TGConnectingPoint num="19" id="896" />
+<TGConnectingPoint num="20" id="897" />
+<TGConnectingPoint num="21" id="898" />
+<TGConnectingPoint num="22" id="899" />
+<TGConnectingPoint num="23" id="900" />
+<TGConnectingPoint num="24" id="901" />
+<TGConnectingPoint num="25" id="902" />
+<TGConnectingPoint num="26" id="903" />
+<TGConnectingPoint num="27" id="904" />
+<TGConnectingPoint num="28" id="905" />
+<TGConnectingPoint num="29" id="906" />
+<TGConnectingPoint num="30" id="907" />
+<TGConnectingPoint num="31" id="908" />
+<TGConnectingPoint num="32" id="909" />
+<TGConnectingPoint num="33" id="910" />
+<TGConnectingPoint num="34" id="911" />
+<TGConnectingPoint num="35" id="912" />
+<TGConnectingPoint num="36" id="913" />
+<TGConnectingPoint num="37" id="914" />
+<TGConnectingPoint num="38" id="915" />
+<TGConnectingPoint num="39" id="916" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="954" >
-<cdparam x="298" y="88" />
+<COMPONENT type="5106" id="958" >
+<cdparam x="338" y="120" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="914" />
-<TGConnectingPoint num="1" id="915" />
-<TGConnectingPoint num="2" id="916" />
-<TGConnectingPoint num="3" id="917" />
-<TGConnectingPoint num="4" id="918" />
-<TGConnectingPoint num="5" id="919" />
-<TGConnectingPoint num="6" id="920" />
-<TGConnectingPoint num="7" id="921" />
-<TGConnectingPoint num="8" id="922" />
-<TGConnectingPoint num="9" id="923" />
-<TGConnectingPoint num="10" id="924" />
-<TGConnectingPoint num="11" id="925" />
-<TGConnectingPoint num="12" id="926" />
-<TGConnectingPoint num="13" id="927" />
-<TGConnectingPoint num="14" id="928" />
-<TGConnectingPoint num="15" id="929" />
-<TGConnectingPoint num="16" id="930" />
-<TGConnectingPoint num="17" id="931" />
-<TGConnectingPoint num="18" id="932" />
-<TGConnectingPoint num="19" id="933" />
-<TGConnectingPoint num="20" id="934" />
-<TGConnectingPoint num="21" id="935" />
-<TGConnectingPoint num="22" id="936" />
-<TGConnectingPoint num="23" id="937" />
-<TGConnectingPoint num="24" id="938" />
-<TGConnectingPoint num="25" id="939" />
-<TGConnectingPoint num="26" id="940" />
-<TGConnectingPoint num="27" id="941" />
-<TGConnectingPoint num="28" id="942" />
-<TGConnectingPoint num="29" id="943" />
-<TGConnectingPoint num="30" id="944" />
-<TGConnectingPoint num="31" id="945" />
-<TGConnectingPoint num="32" id="946" />
-<TGConnectingPoint num="33" id="947" />
-<TGConnectingPoint num="34" id="948" />
-<TGConnectingPoint num="35" id="949" />
-<TGConnectingPoint num="36" id="950" />
-<TGConnectingPoint num="37" id="951" />
-<TGConnectingPoint num="38" id="952" />
-<TGConnectingPoint num="39" id="953" />
+<TGConnectingPoint num="0" id="918" />
+<TGConnectingPoint num="1" id="919" />
+<TGConnectingPoint num="2" id="920" />
+<TGConnectingPoint num="3" id="921" />
+<TGConnectingPoint num="4" id="922" />
+<TGConnectingPoint num="5" id="923" />
+<TGConnectingPoint num="6" id="924" />
+<TGConnectingPoint num="7" id="925" />
+<TGConnectingPoint num="8" id="926" />
+<TGConnectingPoint num="9" id="927" />
+<TGConnectingPoint num="10" id="928" />
+<TGConnectingPoint num="11" id="929" />
+<TGConnectingPoint num="12" id="930" />
+<TGConnectingPoint num="13" id="931" />
+<TGConnectingPoint num="14" id="932" />
+<TGConnectingPoint num="15" id="933" />
+<TGConnectingPoint num="16" id="934" />
+<TGConnectingPoint num="17" id="935" />
+<TGConnectingPoint num="18" id="936" />
+<TGConnectingPoint num="19" id="937" />
+<TGConnectingPoint num="20" id="938" />
+<TGConnectingPoint num="21" id="939" />
+<TGConnectingPoint num="22" id="940" />
+<TGConnectingPoint num="23" id="941" />
+<TGConnectingPoint num="24" id="942" />
+<TGConnectingPoint num="25" id="943" />
+<TGConnectingPoint num="26" id="944" />
+<TGConnectingPoint num="27" id="945" />
+<TGConnectingPoint num="28" id="946" />
+<TGConnectingPoint num="29" id="947" />
+<TGConnectingPoint num="30" id="948" />
+<TGConnectingPoint num="31" id="949" />
+<TGConnectingPoint num="32" id="950" />
+<TGConnectingPoint num="33" id="951" />
+<TGConnectingPoint num="34" id="952" />
+<TGConnectingPoint num="35" id="953" />
+<TGConnectingPoint num="36" id="954" />
+<TGConnectingPoint num="37" id="955" />
+<TGConnectingPoint num="38" id="956" />
+<TGConnectingPoint num="39" id="957" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="956" >
-<cdparam x="315" y="49" />
+<COMPONENT type="5100" id="960" >
+<cdparam x="355" y="81" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="955" />
-</COMPONENT>
-
-<COMPONENT type="5106" id="1010" >
-<cdparam x="264" y="174" />
-<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="state0" value="state0" />
-<TGConnectingPoint num="0" id="970" />
-<TGConnectingPoint num="1" id="971" />
-<TGConnectingPoint num="2" id="972" />
-<TGConnectingPoint num="3" id="973" />
-<TGConnectingPoint num="4" id="974" />
-<TGConnectingPoint num="5" id="975" />
-<TGConnectingPoint num="6" id="976" />
-<TGConnectingPoint num="7" id="977" />
-<TGConnectingPoint num="8" id="978" />
-<TGConnectingPoint num="9" id="979" />
-<TGConnectingPoint num="10" id="980" />
-<TGConnectingPoint num="11" id="981" />
-<TGConnectingPoint num="12" id="982" />
-<TGConnectingPoint num="13" id="983" />
-<TGConnectingPoint num="14" id="984" />
-<TGConnectingPoint num="15" id="985" />
-<TGConnectingPoint num="16" id="986" />
-<TGConnectingPoint num="17" id="987" />
-<TGConnectingPoint num="18" id="988" />
-<TGConnectingPoint num="19" id="989" />
-<TGConnectingPoint num="20" id="990" />
-<TGConnectingPoint num="21" id="991" />
-<TGConnectingPoint num="22" id="992" />
-<TGConnectingPoint num="23" id="993" />
-<TGConnectingPoint num="24" id="994" />
-<TGConnectingPoint num="25" id="995" />
-<TGConnectingPoint num="26" id="996" />
-<TGConnectingPoint num="27" id="997" />
-<TGConnectingPoint num="28" id="998" />
-<TGConnectingPoint num="29" id="999" />
-<TGConnectingPoint num="30" id="1000" />
-<TGConnectingPoint num="31" id="1001" />
-<TGConnectingPoint num="32" id="1002" />
-<TGConnectingPoint num="33" id="1003" />
-<TGConnectingPoint num="34" id="1004" />
-<TGConnectingPoint num="35" id="1005" />
-<TGConnectingPoint num="36" id="1006" />
-<TGConnectingPoint num="37" id="1007" />
-<TGConnectingPoint num="38" id="1008" />
-<TGConnectingPoint num="39" id="1009" />
-<extraparam>
-</extraparam>
-</COMPONENT>
-<SUBCOMPONENT type="5100" id="958" >
-<father id="1010" num="0" />
-<cdparam x="333" y="213" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="957" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="5103" id="969" >
-<father id="1010" num="1" />
-<cdparam x="330" y="257" />
-<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
-<infoparam name="Send signal" value="push()" />
 <TGConnectingPoint num="0" id="959" />
-<TGConnectingPoint num="1" id="960" />
-<TGConnectingPoint num="2" id="961" />
-<TGConnectingPoint num="3" id="962" />
-<TGConnectingPoint num="4" id="963" />
-<TGConnectingPoint num="5" id="964" />
-<TGConnectingPoint num="6" id="965" />
-<TGConnectingPoint num="7" id="966" />
-<TGConnectingPoint num="8" id="967" />
-<TGConnectingPoint num="9" id="968" />
-</SUBCOMPONENT>
+</COMPONENT>
 
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="TeaButton" minX="10" maxX="1400" minY="10" maxY="900" >
-<CONNECTOR type="5102" id="1017" >
-<cdparam x="363" y="193" />
+<AVATARStateMachineDiagramPanel name="CoffeeButton" minX="10" maxX="1400" minY="10" maxY="900" >
+<CONNECTOR type="5102" id="967" >
+<cdparam x="177" y="199" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from Send signal to state0" value="null" />
-<TGConnectingPoint num="0" id="1016" />
-<P1  x="363" y="204" id="1033" />
-<P2  x="362" y="257" id="1044" />
+<infoparam name="connector from start state to Send signal" value="null" />
+<TGConnectingPoint num="0" id="966" />
+<P1  x="340" y="233" id="1084" />
+<P2  x="353" y="252" id="1073" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1015" >
-<father id="1017" num="0" />
-<cdparam x="380" y="228" />
-<sizeparam width="149" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="965" >
+<father id="967" num="0" />
+<cdparam x="177" y="239" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1011" />
-<TGConnectingPoint num="1" id="1012" />
-<TGConnectingPoint num="2" id="1013" />
-<TGConnectingPoint num="3" id="1014" />
+<TGConnectingPoint num="0" id="961" />
+<TGConnectingPoint num="1" id="962" />
+<TGConnectingPoint num="2" id="963" />
+<TGConnectingPoint num="3" id="964" />
 <extraparam>
 <guard value="[ ]" />
-<afterMin value="mechanicalDelay" />
+<afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
@@ -1997,25 +1909,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1024" >
-<cdparam x="363" y="150" />
+<CONNECTOR type="5102" id="974" >
+<cdparam x="322" y="69" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from state0 to Send signal" value="null" />
-<TGConnectingPoint num="0" id="1023" />
-<P1  x="363" y="150" id="1090" />
-<P2  x="363" y="174" id="1032" />
+<infoparam name="connector from start state to state0" value="null" />
+<TGConnectingPoint num="0" id="973" />
+<P1  x="322" y="69" id="1071" />
+<P2  x="323" y="88" id="1031" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1022" >
-<father id="1024" num="0" />
-<cdparam x="363" y="190" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="972" >
+<father id="974" num="0" />
+<cdparam x="322" y="109" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1018" />
-<TGConnectingPoint num="1" id="1019" />
-<TGConnectingPoint num="2" id="1020" />
-<TGConnectingPoint num="3" id="1021" />
+<TGConnectingPoint num="0" id="968" />
+<TGConnectingPoint num="1" id="969" />
+<TGConnectingPoint num="2" id="970" />
+<TGConnectingPoint num="3" id="971" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2026,25 +1938,25 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="1031" >
-<cdparam x="362" y="101" />
+<CONNECTOR type="5102" id="981" >
+<cdparam x="377" y="144" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to state0" value="null" />
-<TGConnectingPoint num="0" id="1030" />
-<P1  x="362" y="101" id="1125" />
-<P2  x="363" y="120" id="1085" />
+<infoparam name="connector from state0 to Send signal" value="null" />
+<TGConnectingPoint num="0" id="980" />
+<P1  x="323" y="118" id="1036" />
+<P2  x="356" y="174" id="1087" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="1029" >
-<father id="1031" num="0" />
-<cdparam x="362" y="141" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="979" >
+<father id="981" num="0" />
+<cdparam x="377" y="184" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="1025" />
-<TGConnectingPoint num="1" id="1026" />
-<TGConnectingPoint num="2" id="1027" />
-<TGConnectingPoint num="3" id="1028" />
+<TGConnectingPoint num="0" id="975" />
+<TGConnectingPoint num="1" id="976" />
+<TGConnectingPoint num="2" id="977" />
+<TGConnectingPoint num="3" id="978" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -2055,133 +1967,221 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5103" id="1042" >
-<cdparam x="338" y="179" />
-<sizeparam width="51" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="988" >
+<cdparam x="377" y="187" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from Send signal to state0" value="null" />
+<TGConnectingPoint num="0" id="987" />
+<P1  x="353" y="282" id="1074" />
+<P2  x="399" y="352" id="990" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="986" >
+<father id="988" num="0" />
+<cdparam x="417" y="335" />
+<sizeparam width="135" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="Send signal" value="push()" />
-<TGConnectingPoint num="0" id="1032" />
-<TGConnectingPoint num="1" id="1033" />
-<TGConnectingPoint num="2" id="1034" />
-<TGConnectingPoint num="3" id="1035" />
-<TGConnectingPoint num="4" id="1036" />
-<TGConnectingPoint num="5" id="1037" />
-<TGConnectingPoint num="6" id="1038" />
-<TGConnectingPoint num="7" id="1039" />
-<TGConnectingPoint num="8" id="1040" />
-<TGConnectingPoint num="9" id="1041" />
-</COMPONENT>
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="982" />
+<TGConnectingPoint num="1" id="983" />
+<TGConnectingPoint num="2" id="984" />
+<TGConnectingPoint num="3" id="985" />
+<extraparam>
+<guard value="[ ]" />
+<afterMin value="mechanicalDelay" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<probability value="" />
+</extraparam>
+</SUBCOMPONENT>
 
-<COMPONENT type="5106" id="1083" >
-<cdparam x="337" y="257" />
+<COMPONENT type="5106" id="1029" >
+<cdparam x="374" y="352" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1043" />
-<TGConnectingPoint num="1" id="1044" />
-<TGConnectingPoint num="2" id="1045" />
-<TGConnectingPoint num="3" id="1046" />
-<TGConnectingPoint num="4" id="1047" />
-<TGConnectingPoint num="5" id="1048" />
-<TGConnectingPoint num="6" id="1049" />
-<TGConnectingPoint num="7" id="1050" />
-<TGConnectingPoint num="8" id="1051" />
-<TGConnectingPoint num="9" id="1052" />
-<TGConnectingPoint num="10" id="1053" />
-<TGConnectingPoint num="11" id="1054" />
-<TGConnectingPoint num="12" id="1055" />
-<TGConnectingPoint num="13" id="1056" />
-<TGConnectingPoint num="14" id="1057" />
-<TGConnectingPoint num="15" id="1058" />
-<TGConnectingPoint num="16" id="1059" />
-<TGConnectingPoint num="17" id="1060" />
-<TGConnectingPoint num="18" id="1061" />
-<TGConnectingPoint num="19" id="1062" />
-<TGConnectingPoint num="20" id="1063" />
-<TGConnectingPoint num="21" id="1064" />
-<TGConnectingPoint num="22" id="1065" />
-<TGConnectingPoint num="23" id="1066" />
-<TGConnectingPoint num="24" id="1067" />
-<TGConnectingPoint num="25" id="1068" />
-<TGConnectingPoint num="26" id="1069" />
-<TGConnectingPoint num="27" id="1070" />
-<TGConnectingPoint num="28" id="1071" />
-<TGConnectingPoint num="29" id="1072" />
-<TGConnectingPoint num="30" id="1073" />
-<TGConnectingPoint num="31" id="1074" />
-<TGConnectingPoint num="32" id="1075" />
-<TGConnectingPoint num="33" id="1076" />
-<TGConnectingPoint num="34" id="1077" />
-<TGConnectingPoint num="35" id="1078" />
-<TGConnectingPoint num="36" id="1079" />
-<TGConnectingPoint num="37" id="1080" />
-<TGConnectingPoint num="38" id="1081" />
-<TGConnectingPoint num="39" id="1082" />
+<TGConnectingPoint num="0" id="989" />
+<TGConnectingPoint num="1" id="990" />
+<TGConnectingPoint num="2" id="991" />
+<TGConnectingPoint num="3" id="992" />
+<TGConnectingPoint num="4" id="993" />
+<TGConnectingPoint num="5" id="994" />
+<TGConnectingPoint num="6" id="995" />
+<TGConnectingPoint num="7" id="996" />
+<TGConnectingPoint num="8" id="997" />
+<TGConnectingPoint num="9" id="998" />
+<TGConnectingPoint num="10" id="999" />
+<TGConnectingPoint num="11" id="1000" />
+<TGConnectingPoint num="12" id="1001" />
+<TGConnectingPoint num="13" id="1002" />
+<TGConnectingPoint num="14" id="1003" />
+<TGConnectingPoint num="15" id="1004" />
+<TGConnectingPoint num="16" id="1005" />
+<TGConnectingPoint num="17" id="1006" />
+<TGConnectingPoint num="18" id="1007" />
+<TGConnectingPoint num="19" id="1008" />
+<TGConnectingPoint num="20" id="1009" />
+<TGConnectingPoint num="21" id="1010" />
+<TGConnectingPoint num="22" id="1011" />
+<TGConnectingPoint num="23" id="1012" />
+<TGConnectingPoint num="24" id="1013" />
+<TGConnectingPoint num="25" id="1014" />
+<TGConnectingPoint num="26" id="1015" />
+<TGConnectingPoint num="27" id="1016" />
+<TGConnectingPoint num="28" id="1017" />
+<TGConnectingPoint num="29" id="1018" />
+<TGConnectingPoint num="30" id="1019" />
+<TGConnectingPoint num="31" id="1020" />
+<TGConnectingPoint num="32" id="1021" />
+<TGConnectingPoint num="33" id="1022" />
+<TGConnectingPoint num="34" id="1023" />
+<TGConnectingPoint num="35" id="1024" />
+<TGConnectingPoint num="36" id="1025" />
+<TGConnectingPoint num="37" id="1026" />
+<TGConnectingPoint num="38" id="1027" />
+<TGConnectingPoint num="39" id="1028" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5106" id="1124" >
-<cdparam x="338" y="120" />
+<COMPONENT type="5106" id="1070" >
+<cdparam x="298" y="88" />
 <sizeparam width="50" height="30" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="state0" value="main" />
-<TGConnectingPoint num="0" id="1084" />
-<TGConnectingPoint num="1" id="1085" />
-<TGConnectingPoint num="2" id="1086" />
-<TGConnectingPoint num="3" id="1087" />
-<TGConnectingPoint num="4" id="1088" />
-<TGConnectingPoint num="5" id="1089" />
-<TGConnectingPoint num="6" id="1090" />
-<TGConnectingPoint num="7" id="1091" />
-<TGConnectingPoint num="8" id="1092" />
-<TGConnectingPoint num="9" id="1093" />
-<TGConnectingPoint num="10" id="1094" />
-<TGConnectingPoint num="11" id="1095" />
-<TGConnectingPoint num="12" id="1096" />
-<TGConnectingPoint num="13" id="1097" />
-<TGConnectingPoint num="14" id="1098" />
-<TGConnectingPoint num="15" id="1099" />
-<TGConnectingPoint num="16" id="1100" />
-<TGConnectingPoint num="17" id="1101" />
-<TGConnectingPoint num="18" id="1102" />
-<TGConnectingPoint num="19" id="1103" />
-<TGConnectingPoint num="20" id="1104" />
-<TGConnectingPoint num="21" id="1105" />
-<TGConnectingPoint num="22" id="1106" />
-<TGConnectingPoint num="23" id="1107" />
-<TGConnectingPoint num="24" id="1108" />
-<TGConnectingPoint num="25" id="1109" />
-<TGConnectingPoint num="26" id="1110" />
-<TGConnectingPoint num="27" id="1111" />
-<TGConnectingPoint num="28" id="1112" />
-<TGConnectingPoint num="29" id="1113" />
-<TGConnectingPoint num="30" id="1114" />
-<TGConnectingPoint num="31" id="1115" />
-<TGConnectingPoint num="32" id="1116" />
-<TGConnectingPoint num="33" id="1117" />
-<TGConnectingPoint num="34" id="1118" />
-<TGConnectingPoint num="35" id="1119" />
-<TGConnectingPoint num="36" id="1120" />
-<TGConnectingPoint num="37" id="1121" />
-<TGConnectingPoint num="38" id="1122" />
-<TGConnectingPoint num="39" id="1123" />
+<TGConnectingPoint num="0" id="1030" />
+<TGConnectingPoint num="1" id="1031" />
+<TGConnectingPoint num="2" id="1032" />
+<TGConnectingPoint num="3" id="1033" />
+<TGConnectingPoint num="4" id="1034" />
+<TGConnectingPoint num="5" id="1035" />
+<TGConnectingPoint num="6" id="1036" />
+<TGConnectingPoint num="7" id="1037" />
+<TGConnectingPoint num="8" id="1038" />
+<TGConnectingPoint num="9" id="1039" />
+<TGConnectingPoint num="10" id="1040" />
+<TGConnectingPoint num="11" id="1041" />
+<TGConnectingPoint num="12" id="1042" />
+<TGConnectingPoint num="13" id="1043" />
+<TGConnectingPoint num="14" id="1044" />
+<TGConnectingPoint num="15" id="1045" />
+<TGConnectingPoint num="16" id="1046" />
+<TGConnectingPoint num="17" id="1047" />
+<TGConnectingPoint num="18" id="1048" />
+<TGConnectingPoint num="19" id="1049" />
+<TGConnectingPoint num="20" id="1050" />
+<TGConnectingPoint num="21" id="1051" />
+<TGConnectingPoint num="22" id="1052" />
+<TGConnectingPoint num="23" id="1053" />
+<TGConnectingPoint num="24" id="1054" />
+<TGConnectingPoint num="25" id="1055" />
+<TGConnectingPoint num="26" id="1056" />
+<TGConnectingPoint num="27" id="1057" />
+<TGConnectingPoint num="28" id="1058" />
+<TGConnectingPoint num="29" id="1059" />
+<TGConnectingPoint num="30" id="1060" />
+<TGConnectingPoint num="31" id="1061" />
+<TGConnectingPoint num="32" id="1062" />
+<TGConnectingPoint num="33" id="1063" />
+<TGConnectingPoint num="34" id="1064" />
+<TGConnectingPoint num="35" id="1065" />
+<TGConnectingPoint num="36" id="1066" />
+<TGConnectingPoint num="37" id="1067" />
+<TGConnectingPoint num="38" id="1068" />
+<TGConnectingPoint num="39" id="1069" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5100" id="1126" >
-<cdparam x="355" y="81" />
+<COMPONENT type="5100" id="1072" >
+<cdparam x="315" y="49" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="1125" />
+<TGConnectingPoint num="0" id="1071" />
 </COMPONENT>
 
+<COMPONENT type="5106" id="1126" >
+<cdparam x="264" y="174" />
+<sizeparam width="184" height="130" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="state0" value="state0" />
+<TGConnectingPoint num="0" id="1086" />
+<TGConnectingPoint num="1" id="1087" />
+<TGConnectingPoint num="2" id="1088" />
+<TGConnectingPoint num="3" id="1089" />
+<TGConnectingPoint num="4" id="1090" />
+<TGConnectingPoint num="5" id="1091" />
+<TGConnectingPoint num="6" id="1092" />
+<TGConnectingPoint num="7" id="1093" />
+<TGConnectingPoint num="8" id="1094" />
+<TGConnectingPoint num="9" id="1095" />
+<TGConnectingPoint num="10" id="1096" />
+<TGConnectingPoint num="11" id="1097" />
+<TGConnectingPoint num="12" id="1098" />
+<TGConnectingPoint num="13" id="1099" />
+<TGConnectingPoint num="14" id="1100" />
+<TGConnectingPoint num="15" id="1101" />
+<TGConnectingPoint num="16" id="1102" />
+<TGConnectingPoint num="17" id="1103" />
+<TGConnectingPoint num="18" id="1104" />
+<TGConnectingPoint num="19" id="1105" />
+<TGConnectingPoint num="20" id="1106" />
+<TGConnectingPoint num="21" id="1107" />
+<TGConnectingPoint num="22" id="1108" />
+<TGConnectingPoint num="23" id="1109" />
+<TGConnectingPoint num="24" id="1110" />
+<TGConnectingPoint num="25" id="1111" />
+<TGConnectingPoint num="26" id="1112" />
+<TGConnectingPoint num="27" id="1113" />
+<TGConnectingPoint num="28" id="1114" />
+<TGConnectingPoint num="29" id="1115" />
+<TGConnectingPoint num="30" id="1116" />
+<TGConnectingPoint num="31" id="1117" />
+<TGConnectingPoint num="32" id="1118" />
+<TGConnectingPoint num="33" id="1119" />
+<TGConnectingPoint num="34" id="1120" />
+<TGConnectingPoint num="35" id="1121" />
+<TGConnectingPoint num="36" id="1122" />
+<TGConnectingPoint num="37" id="1123" />
+<TGConnectingPoint num="38" id="1124" />
+<TGConnectingPoint num="39" id="1125" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+<SUBCOMPONENT type="5103" id="1083" >
+<father id="1126" num="0" />
+<cdparam x="330" y="257" />
+<sizeparam width="46" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="138" minY="0" maxY="110" />
+<infoparam name="Send signal" value="push()" />
+<TGConnectingPoint num="0" id="1073" />
+<TGConnectingPoint num="1" id="1074" />
+<TGConnectingPoint num="2" id="1075" />
+<TGConnectingPoint num="3" id="1076" />
+<TGConnectingPoint num="4" id="1077" />
+<TGConnectingPoint num="5" id="1078" />
+<TGConnectingPoint num="6" id="1079" />
+<TGConnectingPoint num="7" id="1080" />
+<TGConnectingPoint num="8" id="1081" />
+<TGConnectingPoint num="9" id="1082" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="5100" id="1085" >
+<father id="1126" num="1" />
+<cdparam x="333" y="213" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="169" minY="0" maxY="115" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="1084" />
+</SUBCOMPONENT>
+
 
 </AVATARStateMachineDiagramPanel>
 
@@ -2599,7 +2599,7 @@
 <textline data="must be ejected" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="SafetyRequirement" color="-10040065" />
+<reqType data="SafetyRequirement" color="-1773070" />
 <id data="0.1.1" />
 <satisfied data="false" />
 <verified data="false" />
@@ -2836,7 +2836,7 @@
 <textline data="negative number of coins" />
 <kind data="Functional" />
 <criticality data="Low" />
-<reqType data="SafetyRequirement" color="-10040065" />
+<reqType data="SafetyRequirement" color="-1773070" />
 <id data="0.2" />
 <satisfied data="true" />
 <verified data="true" />
@@ -3284,7 +3284,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="1751" />
-<P1  x="318" y="261" id="1795" />
+<P1  x="318" y="261" id="1782" />
 <P2  x="361" y="261" id="1770" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -3302,7 +3302,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="1755" />
-<P1  x="318" y="211" id="1782" />
+<P1  x="318" y="211" id="1795" />
 <P2  x="361" y="211" id="1769" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -3391,11 +3391,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5304" id="1792" >
 <father id="1830" num="0" />
-<cdparam x="166" y="191" />
-<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="154" y="241" />
+<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
+<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
 <TGConnectingPoint num="0" id="1780" />
 <TGConnectingPoint num="1" id="1781" />
 <TGConnectingPoint num="2" id="1782" />
@@ -3411,11 +3411,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5304" id="1805" >
 <father id="1830" num="1" />
-<cdparam x="154" y="241" />
-<sizeparam width="164" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="166" y="191" />
+<sizeparam width="152" height="40" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="4" minY="0" maxY="114" />
-<infoparam name="TGComponent" value="WaitingForFirstCoin_enter" />
+<cdrectangleparam minX="0" maxX="16" minY="0" maxY="114" />
+<infoparam name="TGComponent" value="WaitingForFirstCoin_exit" />
 <TGConnectingPoint num="0" id="1793" />
 <TGConnectingPoint num="1" id="1794" />
 <TGConnectingPoint num="2" id="1795" />
@@ -3545,7 +3545,7 @@
 <TGConnectingPoint num="0" id="1889" />
 <TGConnectingPoint num="1" id="1890" />
 <TGConnectingPoint num="2" id="1891" />
-<P1  x="581" y="154" id="1965" />
+<P1  x="581" y="154" id="1978" />
 <P2  x="546" y="305" id="2035" />
 <Point x="518" y="154" />
 <Point x="518" y="305" />
@@ -3573,7 +3573,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="1894" />
 <TGConnectingPoint num="1" id="1895" />
-<P1  x="631" y="164" id="1960" />
+<P1  x="631" y="164" id="1973" />
 <P2  x="667" y="310" id="2022" />
 <Point x="631" y="310" />
 <AutomaticDrawing  data="true" />
@@ -3601,7 +3601,7 @@
 <infoparam name="connector from TGComponent to TGComponent" value="" />
 <TGConnectingPoint num="0" id="1900" />
 <TGConnectingPoint num="1" id="1901" />
-<P1  x="721" y="158" id="1971" />
+<P1  x="721" y="158" id="1958" />
 <P2  x="700" y="204" id="2012" />
 <Point x="700" y="158" />
 <AutomaticDrawing  data="true" />
@@ -3756,13 +3756,13 @@
 <TGConnectingPoint num="22" id="2005" />
 <TGConnectingPoint num="23" id="2006" />
 </COMPONENT>
-<SUBCOMPONENT type="5304" id="1969" >
+<SUBCOMPONENT type="5303" id="1969" >
 <father id="2007" num="0" />
-<cdparam x="581" y="125" />
-<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="721" y="133" />
+<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" />
-<infoparam name="TGComponent" value="Start" />
+<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" />
+<infoparam name="TGComponent" value="nbOfCoins" />
 <TGConnectingPoint num="0" id="1957" />
 <TGConnectingPoint num="1" id="1958" />
 <TGConnectingPoint num="2" id="1959" />
@@ -3775,14 +3775,17 @@
 <TGConnectingPoint num="9" id="1966" />
 <TGConnectingPoint num="10" id="1967" />
 <TGConnectingPoint num="11" id="1968" />
+<extraparam>
+<Toggle value="" />
+</extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="5303" id="1982" >
+<SUBCOMPONENT type="5304" id="1982" >
 <father id="2007" num="1" />
-<cdparam x="721" y="133" />
-<sizeparam width="100" height="50" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="581" y="125" />
+<sizeparam width="100" height="39" minWidth="100" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="168" minY="0" maxY="65" />
-<infoparam name="TGComponent" value="nbOfCoins" />
+<cdrectangleparam minX="0" maxX="168" minY="0" maxY="76" />
+<infoparam name="TGComponent" value="Start" />
 <TGConnectingPoint num="0" id="1970" />
 <TGConnectingPoint num="1" id="1971" />
 <TGConnectingPoint num="2" id="1972" />
@@ -3795,9 +3798,6 @@
 <TGConnectingPoint num="9" id="1979" />
 <TGConnectingPoint num="10" id="1980" />
 <TGConnectingPoint num="11" id="1981" />
-<extraparam>
-<Toggle value="" />
-</extraparam>
 </SUBCOMPONENT>
 
 <COMPONENT type="5306" id="2019" >
@@ -4085,7 +4085,7 @@
 <textline data="Double-click to edit" />
 <kind data="" />
 <criticality data="" />
-<reqType data="SafetyRequirement" color="-10040065" />
+<reqType data="SafetyRequirement" color="-1773070" />
 <id data="1" />
 <satisfied data="false" />
 <verified data="false" />
diff --git a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
index 238cd6094990c05ca6373c94c38a9215d2ab6242..7e4f3eb6399b3b43b1c8544e71f598371c710005 100644
--- a/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
+++ b/modeling/DIPLODOCUS/SmartCardProtocol_sec.xml
@@ -347,16 +347,16 @@
 <cdparam x="535" y="347" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="556" y="347" id="355" />
-<P2  x="547" y="382" id="402" />
+<P1  x="556" y="321" id="355" />
+<P2  x="534" y="395" id="402" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="189" >
 <cdparam x="820" y="398" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1025" y="497" id="249" />
-<P2  x="761" y="574" id="370" />
+<P1  x="1025" y="471" id="249" />
+<P2  x="761" y="548" id="370" />
 <Point x="887" y="577" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="188" >
@@ -373,15 +373,15 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
 <P1  x="710" y="403" id="372" />
-<P2  x="693" y="347" id="333" />
+<P2  x="693" y="321" id="333" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="191" >
 <cdparam x="522" y="390" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="521" y="382" id="397" />
-<P2  x="466" y="335" id="236" />
+<P1  x="534" y="369" id="397" />
+<P2  x="453" y="322" id="236" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="192" >
@@ -396,16 +396,16 @@
 <cdparam x="656" y="426" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="552" id="376" />
-<P2  x="969" y="495" id="263" />
+<P1  x="805" y="542" id="376" />
+<P2  x="969" y="474" id="263" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="194" >
 <cdparam x="656" y="400" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="519" id="378" />
-<P2  x="921" y="476" id="261" />
+<P1  x="805" y="509" id="378" />
+<P2  x="931" y="466" id="261" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="195" >
@@ -413,126 +413,126 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
 <P1  x="750" y="406" id="386" />
-<P2  x="828" y="375" id="291" />
+<P2  x="841" y="362" id="291" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="196" >
 <cdparam x="689" y="292" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="854" y="375" id="295" />
-<P2  x="921" y="362" id="271" />
+<P1  x="841" y="388" id="295" />
+<P2  x="931" y="352" id="271" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="197" >
 <cdparam x="656" y="377" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="491" id="382" />
-<P2  x="921" y="453" id="269" />
+<P1  x="805" y="481" id="382" />
+<P2  x="931" y="443" id="269" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="198" >
 <cdparam x="656" y="351" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="816" y="458" id="380" />
-<P2  x="921" y="426" id="267" />
+<P1  x="805" y="448" id="380" />
+<P2  x="931" y="416" id="267" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="199" >
 <cdparam x="741" y="296" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="921" y="397" id="265" />
-<P2  x="816" y="429" id="384" />
+<P1  x="931" y="387" id="265" />
+<P2  x="805" y="419" id="384" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="200" >
 <cdparam x="735" y="260" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="918" y="330" id="273" />
-<P2  x="747" y="282" id="345" />
+<P1  x="931" y="317" id="273" />
+<P2  x="734" y="269" id="345" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="201" >
 <cdparam x="641" y="230" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="747" y="248" id="343" />
-<P2  x="918" y="291" id="275" />
+<P1  x="734" y="235" id="343" />
+<P2  x="931" y="278" id="275" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="202" >
 <cdparam x="641" y="195" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="747" y="203" id="341" />
-<P2  x="918" y="248" id="277" />
+<P1  x="734" y="190" id="341" />
+<P2  x="931" y="235" id="277" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="203" >
 <cdparam x="740" y="353" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="828" y="375" id="290" />
-<P2  x="747" y="314" id="339" />
+<P1  x="841" y="362" id="290" />
+<P2  x="734" y="301" id="339" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="204" >
 <cdparam x="460" y="270" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="521" y="303" id="349" />
-<P2  x="466" y="303" id="230" />
+<P1  x="534" y="290" id="349" />
+<P2  x="453" y="290" id="230" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="205" >
 <cdparam x="387" y="129" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="464" y="126" id="226" />
-<P2  x="524" y="126" id="337" />
+<P1  x="453" y="116" id="226" />
+<P2  x="534" y="116" id="337" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="206" >
 <cdparam x="389" y="200" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="466" y="215" id="232" />
-<P2  x="521" y="215" id="351" />
+<P1  x="453" y="202" id="232" />
+<P2  x="534" y="202" id="351" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="207" >
 <cdparam x="460" y="236" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="521" y="260" id="353" />
-<P2  x="466" y="260" id="234" />
+<P1  x="534" y="247" id="353" />
+<P2  x="453" y="247" id="234" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="208" >
 <cdparam x="389" y="163" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="466" y="169" id="228" />
-<P2  x="521" y="169" id="347" />
+<P1  x="453" y="156" id="228" />
+<P2  x="534" y="156" id="347" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="209" >
 <cdparam x="967" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="918" y="198" id="279" />
-<P2  x="747" y="124" id="359" />
+<P1  x="931" y="185" id="279" />
+<P2  x="734" y="111" id="359" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="210" >
 <cdparam x="1028" y="535" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="630" y="345" id="335" />
+<P1  x="630" y="324" id="335" />
 <P2  x="669" y="406" id="374" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -540,24 +540,24 @@
 <cdparam x="1308" y="303" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1222" y="378" id="313" />
-<P2  x="1178" y="380" id="259" />
+<P1  x="1232" y="368" id="313" />
+<P2  x="1167" y="370" id="259" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="212" >
 <cdparam x="1172" y="437" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1178" y="415" id="257" />
-<P2  x="1222" y="413" id="311" />
+<P1  x="1167" y="405" id="257" />
+<P2  x="1232" y="403" id="311" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="215" >
 <cdparam x="1041" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1178" y="208" id="255" />
-<P2  x="1178" y="276" id="253" />
+<P1  x="1167" y="198" id="255" />
+<P2  x="1167" y="266" id="253" />
 <Point x="1227" y="207" />
 <Point x="1227" y="247" />
 <AutomaticDrawing  data="true" />
@@ -582,8 +582,8 @@
 <cdparam x="877" y="343" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from TGComponent to TGComponent" value="Connector between ports" />
-<P1  x="1178" y="454" id="251" />
-<P2  x="1222" y="441" id="309" />
+<P1  x="1167" y="444" id="251" />
+<P2  x="1232" y="431" id="309" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="1205" id="225" >
@@ -690,7 +690,7 @@
 <infoparam name="TGComponent" value="Channel fromDtoSC" />
 <TGConnectingPoint num="0" id="232" />
 <extraparam>
-<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromDtoSC" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1392,7 +1392,7 @@
 <infoparam name="TGComponent" value="Channel fromSCtoD" />
 <TGConnectingPoint num="0" id="353" />
 <extraparam>
-<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="3" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fromSCtoD" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="40" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="-1" dataFlowType="int16_t" associatedEvent="" checkConf="true" checkConfStatus="1" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -8913,7 +8913,7 @@ On prend b=1 comme exemple
 
 <COMPONENT type="302" id="2711" >
 <cdparam x="517" y="154" />
-<sizeparam width="520" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="565" height="110" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="Proverif Pragma" value="#PrivatePublicKeys InterfaceDevice privK pubK
diff --git a/src/.classpath b/src/.classpath
index 42454fe50719774f5a6a8794720018e4cf0640eb..5f8345db70e5eabf790de1dcd959855873e4f1fc 100644
--- a/src/.classpath
+++ b/src/.classpath
@@ -14,5 +14,8 @@
 	<classpathentry kind="lib" path="/libs/commons-math3-3.6.1.jar"/>
 	<classpathentry kind="lib" path="/libs/batik-dom.jar"/>
 	<classpathentry kind="lib" path="/libs/batik-svggen.jar"/>
+	<classpathentry kind="lib" path="/libs/batik-awt-util.jar"/>
+	<classpathentry kind="lib" path="/libs/batik-xml.jar"/>
+	<classpathentry kind="lib" path="/libs/batik-util.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/src/main/java/avatartranslator/AvatarAction.java b/src/main/java/avatartranslator/AvatarAction.java
index 1ecfd5e3b42f7a99db2f9262661260eed95d4aa2..b0c957a25fd134201ce4ef2d4fe9314af0e92575 100644
--- a/src/main/java/avatartranslator/AvatarAction.java
+++ b/src/main/java/avatartranslator/AvatarAction.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarAction
@@ -75,5 +72,5 @@ public interface AvatarAction {
      * @param attributesMapping
      *      The mapping used to replace the attributes of the action. All the attributes of the block should be present as keys.
      */
-    void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping);
+    void replaceAttributes(Map<AvatarAttribute, AvatarAttribute> attributesMapping);
 }
diff --git a/src/main/java/avatartranslator/AvatarActionAssignment.java b/src/main/java/avatartranslator/AvatarActionAssignment.java
index 0fb0455ef78bb0edec33fe2695947b3cb5c85652..d758d35991a90fe54ccc55e8e696edddc7254921 100644
--- a/src/main/java/avatartranslator/AvatarActionAssignment.java
+++ b/src/main/java/avatartranslator/AvatarActionAssignment.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarActionAssignment
@@ -99,7 +95,7 @@ public class AvatarActionAssignment implements AvatarAction {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         if (this.leftHand instanceof AvatarAttribute)
             this.leftHand = attributesMapping.get (this.leftHand);
         else
diff --git a/src/main/java/avatartranslator/AvatarActionOnSignal.java b/src/main/java/avatartranslator/AvatarActionOnSignal.java
index 0f4ccc50002cb4aba158e683ff82e28351fdf86f..431bbff681a7eda8963d4157ebeff2fbceaca5f2 100644
--- a/src/main/java/avatartranslator/AvatarActionOnSignal.java
+++ b/src/main/java/avatartranslator/AvatarActionOnSignal.java
@@ -42,6 +42,7 @@ package avatartranslator;
 import myutil.TraceManager;
 
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -52,20 +53,23 @@ import java.util.LinkedList;
  */
 public class AvatarActionOnSignal extends AvatarStateMachineElement {
     private AvatarSignal signal;
-    private LinkedList<String> values;
+    private List<String> values;
 	private boolean checkLatency;
 
-    public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject) {
-        super(_name, _referenceObject);
-        signal = _signal;
-        values = new LinkedList<String>();
-    }
 
-    public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject, boolean _isCheckable, boolean _isChecked) {
-        super(_name, _referenceObject, _isCheckable, _isChecked);
-        signal = _signal;
-        values = new LinkedList<String>();
-    }
+	public AvatarActionOnSignal(String _name, AvatarSignal _signal, Object _referenceObject ) {
+		this( _name, _signal, _referenceObject, false );
+	}
+
+	public AvatarActionOnSignal(	String _name,
+									AvatarSignal _signal,
+									Object _referenceObject,
+									boolean _isCheckable ) {
+		super( _name, _referenceObject, _isCheckable, false );
+		
+		signal = _signal;
+		values = new LinkedList<String>();
+	}
 
     public AvatarSignal getSignal() {
         return signal;
@@ -75,7 +79,7 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
         values.add(_val);
     }
 
-    public LinkedList<String> getValues() {
+    public List<String> getValues() {
         return values;
     }
 
@@ -104,32 +108,32 @@ public class AvatarActionOnSignal extends AvatarStateMachineElement {
     }
 
     public AvatarActionOnSignal basicCloneMe(AvatarStateMachineOwner _block) {
-        //TraceManager.addDev("I HAVE BEEN CLONED: " + this);
-	AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName());
-	if (sig != null) {
-	    AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), isCheckable(), isChecked());
-	    for(int i=0; i<getNbOfValues(); i++) {
-		aaos.addValue(getValue(i));
-	    }
-	    return aaos;
-	} else {
-	    TraceManager.addDev("NULL signal in new spec: " + getSignal().getName());
-	}
-
-        return null;
+    	//TraceManager.addDev("I HAVE BEEN CLONED: " + this);
+    	AvatarSignal sig = _block.getAvatarSignalWithName(getSignal().getName());
+    	if (sig != null) {
+    		AvatarActionOnSignal aaos = new AvatarActionOnSignal(getName() + "__clone", sig, getReferenceObject(), isCheckable()/*, isChecked()*/);
+    		for(int i=0; i<getNbOfValues(); i++) {
+    			aaos.addValue(getValue(i));
+    		}
+    		return aaos;
+    	} else {
+    		TraceManager.addDev("NULL signal in new spec: " + getSignal().getName());
+    	}
+
+    	return null;
     }
 
     public String getExtendedName() {
-	if (getSignal() == null) {
-	    String s = getName() + " refobjt=" + referenceObject.toString();
-	    TraceManager.addDev("Null signal" + " res=" + s);
-	    return s;
-	}
-	if (getName() == null) {
-	    TraceManager.addDev("Null name");
-	}
-
-        return getName() + ":" + getSignal().getName();
+    	if (getSignal() == null) {
+    		String s = getName() + " refobjt=" + referenceObject.toString();
+    		TraceManager.addDev("Null signal" + " res=" + s);
+    		return s;
+    	}
+    	if (getName() == null) {
+    		TraceManager.addDev("Null name");
+    	}
+
+    	return getName() + ":" + getSignal().getName();
     }
 
     public String getNiceName() {
diff --git a/src/main/java/avatartranslator/AvatarArithmeticOp.java b/src/main/java/avatartranslator/AvatarArithmeticOp.java
index 029d0856cebb5b648b1838221d6f6df6bf8da825..c439b3ceda8b6cb601c4344f6d5b36a66480db1b 100644
--- a/src/main/java/avatartranslator/AvatarArithmeticOp.java
+++ b/src/main/java/avatartranslator/AvatarArithmeticOp.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarArithmeticOp
@@ -114,7 +111,7 @@ public class AvatarArithmeticOp extends AvatarTerm {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         if (this.term1 instanceof AvatarAttribute)
             this.term1 = attributesMapping.get (this.term1);
         else
diff --git a/src/main/java/avatartranslator/AvatarAttribute.java b/src/main/java/avatartranslator/AvatarAttribute.java
index 1701e29ad4eee2d71ce697f516a7f1d416ac152a..775a1f8e68958f117e78519f69220a60498b0ef5 100644
--- a/src/main/java/avatartranslator/AvatarAttribute.java
+++ b/src/main/java/avatartranslator/AvatarAttribute.java
@@ -39,9 +39,9 @@
 
 package avatartranslator;
 
-import myutil.TraceManager;
+import java.util.Map;
 
-import java.util.HashMap;
+import myutil.TraceManager;
 
 /**
  * Class AvatarAttribute
@@ -189,7 +189,7 @@ public class AvatarAttribute extends AvatarLeftHand {
     }
 
     @Override
-    public void replaceAttributes(HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         TraceManager.addDev("!!! ERROR !!! (replaceAttributes in AvatarAttribute)");
         /* !!! We should never arrive here !!! */
     }
diff --git a/src/main/java/avatartranslator/AvatarAttributeState.java b/src/main/java/avatartranslator/AvatarAttributeState.java
index becf79f442aacfa4094055716c091de373989f7f..fb260813c87a96bfda084d35271908a5407cde3f 100644
--- a/src/main/java/avatartranslator/AvatarAttributeState.java
+++ b/src/main/java/avatartranslator/AvatarAttributeState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 /**
@@ -52,14 +49,16 @@ public class AvatarAttributeState extends AvatarElement {
     private AvatarState state;
     public AvatarAttributeState(String _name, Object _referenceObject, AvatarAttribute attr, AvatarState st) {
         super(_name, _referenceObject);
-	attribute = attr;
-	state = st;
+        attribute = attr;
+        state = st;
     }
+    
     public AvatarAttribute getAttribute(){
-	return attribute;
+    	return attribute;
     }
+    
     public AvatarState getState(){
-	return state;
+    	return state;
     }
 
     public AvatarAttributeState advancedClone (AvatarSpecification avspec) {
@@ -72,8 +71,8 @@ public class AvatarAttributeState extends AvatarElement {
         return result;
     }
 
-    public String toString()
-    {
+    @Override
+    public String toString() {
         return this.attribute.getBlock().getName().replaceAll("__", ".") + "." + this.state.getName() + "." + this.attribute.getName();
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarBinaryGuard.java b/src/main/java/avatartranslator/AvatarBinaryGuard.java
index 0c473aaafd6a07fc8d97882b40119766dab8e0b3..070ef547e6d468ee21a29086df8692bc6c45fdd1 100644
--- a/src/main/java/avatartranslator/AvatarBinaryGuard.java
+++ b/src/main/java/avatartranslator/AvatarBinaryGuard.java
@@ -36,10 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarBinaryGuard
@@ -81,7 +80,7 @@ public class AvatarBinaryGuard extends AvatarComposedGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         this.guardA.replaceAttributes (attributesMapping);
         this.guardB.replaceAttributes (attributesMapping);
     }
diff --git a/src/main/java/avatartranslator/AvatarBlock.java b/src/main/java/avatartranslator/AvatarBlock.java
index 0053bc1dd849167e8926ecb0735bc1ac5d59e212..58c022392b7f233bad0b25d68b7c8219068692a1 100644
--- a/src/main/java/avatartranslator/AvatarBlock.java
+++ b/src/main/java/avatartranslator/AvatarBlock.java
@@ -36,13 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -54,9 +52,9 @@ import java.util.LinkedList;
 public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwner {
 
     private AvatarBlock father;
-    private LinkedList<AvatarAttribute> attributes;
-    private LinkedList<AvatarMethod> methods;
-    private LinkedList<AvatarSignal> signals;
+    private List<AvatarAttribute> attributes;
+    private List<AvatarMethod> methods;
+    private List<AvatarSignal> signals;
     private AvatarStateMachine asm;
     private AvatarSpecification avspec;
 
@@ -119,16 +117,16 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
         signals.add(_signal);
     }
 
-    public LinkedList<AvatarAttribute> getAttributes() {
+    public List<AvatarAttribute> getAttributes() {
         return attributes;
     }
 
-    public LinkedList<AvatarMethod> getMethods() {
+    public List<AvatarMethod> getMethods() {
         return methods;
     }
 
 
-    public LinkedList<AvatarSignal> getSignals() {
+    public List<AvatarSignal> getSignals() {
         return signals ;
     }
 
@@ -435,8 +433,7 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
         return (asme != null);
     }
 
-
-    public void removeTimers(AvatarSpecification _spec, LinkedList<AvatarBlock> _addedBlocks) {
+    public void removeTimers(AvatarSpecification _spec, List<AvatarBlock> _addedBlocks) {
         AvatarSignal as;
         AvatarAttribute value;
 
@@ -479,25 +476,24 @@ public class AvatarBlock extends AvatarElement implements AvatarStateMachineOwne
 
         // Remove Timer attribute
 	//boolean hasTimerAttribute = false;
-        LinkedList<AvatarAttribute> tmps = attributes;
+        List<AvatarAttribute> tmps = attributes;
         attributes = new LinkedList<AvatarAttribute>();
         for (AvatarAttribute aa: tmps) {
             if (aa.getType() != AvatarType.TIMER) {
                 attributes.add(aa);
-	    } else {
+            } else {
 		//hasTimerAttribute = true;
-	    }
+            }
         }
-
     }
 
     public boolean hasTimerAttribute() {
-	for(AvatarAttribute attr: attributes) {
-	    if (attr.isTimer()) {
-		return true;
-	    }
-	}
-	return false;
+    	for(AvatarAttribute attr: attributes) {
+    		if (attr.isTimer()) {
+    			return true;
+    		}
+    	}
+    	return false;
     }
 
     public AvatarAttribute addTimerAttribute(String _name) {
diff --git a/src/main/java/avatartranslator/AvatarComposedGuard.java b/src/main/java/avatartranslator/AvatarComposedGuard.java
index 7115e79a910af48a070ef41553a2523e1dcd2df1..e414be224d870cdfbeba99eca46ec5ef1fd97c36 100644
--- a/src/main/java/avatartranslator/AvatarComposedGuard.java
+++ b/src/main/java/avatartranslator/AvatarComposedGuard.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 /**
@@ -49,7 +45,8 @@ package avatartranslator;
    * @author Florian LUGOU
  */
 public abstract class AvatarComposedGuard extends AvatarGuard {
-    public AvatarComposedGuard getOpposite () {
+    
+	public AvatarComposedGuard getOpposite () {
         return new AvatarUnaryGuard ("not", "(", ")", this);
     }
 
diff --git a/src/main/java/avatartranslator/AvatarConstant.java b/src/main/java/avatartranslator/AvatarConstant.java
index f9cf2f5069af9eefab5a1ef855ca0995b66ddcee..03a1710cccf0ad5399c90b7ad2f5ae1ec46ec3ff 100644
--- a/src/main/java/avatartranslator/AvatarConstant.java
+++ b/src/main/java/avatartranslator/AvatarConstant.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarTerm
@@ -74,19 +70,20 @@ public class AvatarConstant extends AvatarTerm {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 
     @Override
     public String toString() {
-	return getName();
+    	return getName();
     }
 
     public AvatarConstant advancedClone() {
         if (this == AvatarConstant.TRUE || this == AvatarConstant.FALSE)
             return this;
 
-	AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject());
-	cloneLinkToReferenceObjects(ac);
-	return ac;
+        AvatarConstant ac = new AvatarConstant(getName(), getReferenceObject());
+        cloneLinkToReferenceObjects(ac);
+	
+        return ac;
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarConstantGuard.java b/src/main/java/avatartranslator/AvatarConstantGuard.java
index d6a3591d65d98925ac9516ac3f1e80646718d3fc..d19b4d8640a8c027e8c6612223a8ff18966f09ed 100644
--- a/src/main/java/avatartranslator/AvatarConstantGuard.java
+++ b/src/main/java/avatartranslator/AvatarConstantGuard.java
@@ -36,14 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
-
+import java.util.Map;
 
 /**
  * An AvatarConstantGuard is an {@link AvatarSimpleGuard} that is of the form:
@@ -73,5 +68,5 @@ public class AvatarConstantGuard extends AvatarSimpleGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarDummyState.java b/src/main/java/avatartranslator/AvatarDummyState.java
new file mode 100644
index 0000000000000000000000000000000000000000..3bd0f6623725fa38b72984437b1672c22fac7fe3
--- /dev/null
+++ b/src/main/java/avatartranslator/AvatarDummyState.java
@@ -0,0 +1,18 @@
+package avatartranslator;
+
+/**
+ * Issue #69: Created for component disabling. When a state machine element is located between transitions
+ * that have guards and actions, we need to keep a node to ensure that these are evaluated / executed in 
+ * the same sequence leading to the same semantics. We create replace the disabled node with this dummy state 
+ * that will have no impact on the generation of other specifications (UPPAAL, C Code, Proverif, etc..). 
+ * 
+ * @author dblouin
+ *
+ */
+public class AvatarDummyState extends AvatarState {
+
+	public AvatarDummyState( 	final String name,
+								final Object _referenceObject ) {
+		super( name + "_converted_to_dummy_state", _referenceObject );
+	}
+}
diff --git a/src/main/java/avatartranslator/AvatarElement.java b/src/main/java/avatartranslator/AvatarElement.java
index 5d40d2f802eb7637a475a611a01f9cdd3f45fdcd..40f3944bf2b1624630438e186462df0ceb0fa16b 100644
--- a/src/main/java/avatartranslator/AvatarElement.java
+++ b/src/main/java/avatartranslator/AvatarElement.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 import myutil.TraceManager;
@@ -53,7 +50,7 @@ import java.util.Vector;
  */
 public class AvatarElement {
 
-    protected static int ID=0;
+    private static int ID=0;
 
     protected String name;
     protected Object referenceObject;
@@ -67,14 +64,14 @@ public class AvatarElement {
     }
 
     public void addReferenceObjectFrom(AvatarElement _elt) {
-	addReferenceObject(_elt.getReferenceObject());
-	Vector<Object> others = _elt.getReferenceObjects();
-	if (others != null) {
-	    for(Object o: others) {
-		addReferenceObject(o);
-	    }
-	}
-	
+    	addReferenceObject(_elt.getReferenceObject());
+    	Vector<Object> others = _elt.getReferenceObjects();
+    	if (others != null) {
+    		for(Object o: others) {
+    			addReferenceObject(o);
+    		}
+    	}
+
     }
 
     public void addReferenceObject(Object _ref) {
@@ -113,7 +110,7 @@ public class AvatarElement {
     }
 
     public Vector<Object> getReferenceObjects() {
-	return otherReferenceObjects;
+    	return otherReferenceObjects;
     }
 
     public int getID(){
@@ -125,16 +122,17 @@ public class AvatarElement {
         ID = 0;
     }
 
+    @Override
     public String toString() {
-	return getName();
+    	return getName();
     }
 
     public void cloneLinkToReferenceObjects(AvatarElement ae) {
-	if (otherReferenceObjects == null) {
-	    return;
-	}
-	for(Object o: otherReferenceObjects) {
-	    ae.addReferenceObject(o);
-	}
+    	if (otherReferenceObjects == null) {
+    		return;
+    	}
+    	for(Object o: otherReferenceObjects) {
+    		ae.addReferenceObject(o);
+    	}
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarGuard.java b/src/main/java/avatartranslator/AvatarGuard.java
index e02812cb685d04ecc3d2b0aab1cd2aebfd718949..f75aedd22226c555cab87f00a05344c0774b9424 100644
--- a/src/main/java/avatartranslator/AvatarGuard.java
+++ b/src/main/java/avatartranslator/AvatarGuard.java
@@ -36,17 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
+import java.util.Map;
+
 import myutil.Conversion;
 import myutil.TraceManager;
 
-import java.util.HashMap;
-
 /**
  * Class AvatarGuard
  * Creation: 16/09/2015
@@ -233,6 +229,7 @@ public abstract class AvatarGuard {
 
     public abstract String getAsString (AvatarSyntaxTranslator translator);
 
+    @Override
     public String toString () {
         return this.getAsString (new AvatarSyntaxTranslator ());
     }
@@ -250,5 +247,5 @@ public abstract class AvatarGuard {
      * @param attributesMapping
      *      The mapping used to replace the attributes of the guard. All the attributes of the block should be present as keys.
      */
-    public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping);
+    public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping);
 }
diff --git a/src/main/java/avatartranslator/AvatarGuardElse.java b/src/main/java/avatartranslator/AvatarGuardElse.java
index 61020187adf847de61777dda0892b0622dba420b..3afe3e0fe5ce808bfbf80d17dc65d86f0f2e8d99 100644
--- a/src/main/java/avatartranslator/AvatarGuardElse.java
+++ b/src/main/java/avatartranslator/AvatarGuardElse.java
@@ -36,14 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
-
+import java.util.Map;
 
 /**
  * An AvatarGuardElse is an {@link AvatarGuard} that is of the form:
@@ -90,6 +85,7 @@ public class AvatarGuardElse extends AvatarGuard {
         return "else";
     }
 
+    @Override
     public boolean isElseGuard () {
         return true;
     }
@@ -100,5 +96,5 @@ public class AvatarGuardElse extends AvatarGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarGuardEmpty.java b/src/main/java/avatartranslator/AvatarGuardEmpty.java
index 15adf7e6103e4858db7686b2bfc76bea6e8efa96..6e5cdd08edf654cdb97b6f4bf2b82a8fcd7236dc 100644
--- a/src/main/java/avatartranslator/AvatarGuardEmpty.java
+++ b/src/main/java/avatartranslator/AvatarGuardEmpty.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -52,7 +48,8 @@ import java.util.HashMap;
  * @author Florian LUGOU
  */
 public class AvatarGuardEmpty extends AvatarGuard {
-    public AvatarGuardEmpty () {
+    
+	public AvatarGuardEmpty () {
     }
 
     public boolean isGuarded () {
@@ -69,5 +66,5 @@ public class AvatarGuardEmpty extends AvatarGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarLibraryFunction.java b/src/main/java/avatartranslator/AvatarLibraryFunction.java
index cba451ea26ec11f1faee1b33cadb9da500b7c06e..c80b6155e231443331effd03ee23ece3b52c8bdb 100644
--- a/src/main/java/avatartranslator/AvatarLibraryFunction.java
+++ b/src/main/java/avatartranslator/AvatarLibraryFunction.java
@@ -36,15 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedList;
-
+import java.util.List;
+import java.util.Map;
 
 /**
  * AvatarLibraryFunction is used to represent a library function that can be further used in state machine diagrams.
@@ -70,34 +68,34 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarAttribute> parameters;
+    private List<AvatarAttribute> parameters;
 
     /**
      * The list of variables local to the function.
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarAttribute> attributes;
+    private List<AvatarAttribute> attributes;
 
     /**
      * The list of signals used by the function.
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarSignal> signals;
+    private List<AvatarSignal> signals;
 
     /**
      * The list of attribute that will hold the return values of the function. These shouldn't be elements of {@link AvatarLibraryFunction#attributes} or {@link AvatarLibraryFunction#parameters}.
      *
      * <p>Note that these are only placeholders and should not be used outside this class.</p>
      */
-    private LinkedList<AvatarAttribute> returnAttributes;
+    private List<AvatarAttribute> returnAttributes;
 
     /**
      * The list of methods that can be used by the function.
      *
      */
-    private LinkedList<AvatarMethod> methods;
+    private List<AvatarMethod> methods;
 
     /**
      * The state machine describing the behaviour of the function.
@@ -166,7 +164,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of parameters.
      */
-    public LinkedList<AvatarAttribute> getParameters () {
+    public List<AvatarAttribute> getParameters () {
         return this.parameters;
     }
 
@@ -185,7 +183,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of signals.
      */
-    public LinkedList<AvatarSignal> getSignals () {
+    public List<AvatarSignal> getSignals () {
         return this.signals;
     }
 
@@ -213,7 +211,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of return values.
      */
-    public LinkedList<AvatarAttribute> getReturnAttributes () {
+    public List<AvatarAttribute> getReturnAttributes () {
         return this.returnAttributes;
     }
 
@@ -232,13 +230,13 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of local attributes.
      */
-    public LinkedList<AvatarAttribute> getLocalAttributes () {
+    public List<AvatarAttribute> getLocalAttributes () {
         return this.attributes;
     }
 
     @Override
-    public LinkedList<AvatarAttribute> getAttributes () {
-        LinkedList<AvatarAttribute> result = new LinkedList<AvatarAttribute> ();
+    public List<AvatarAttribute> getAttributes () {
+        List<AvatarAttribute> result = new LinkedList<AvatarAttribute> ();
 
         for (AvatarAttribute attr: this.attributes)
             result.add (attr);
@@ -260,7 +258,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The list of methods used by this function.
      */
-    public LinkedList<AvatarMethod> getMethods () {
+    public List<AvatarMethod> getMethods () {
         return this.methods;
     }
 
@@ -310,7 +308,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      * @param mapping
      *      A mapping from placeholders to attributes of the block.
      */
-    public void addAttributesToBlock (AvatarBlock block, HashMap<AvatarAttribute, AvatarAttribute> mapping) {
+    public void addAttributesToBlock (AvatarBlock block, Map<AvatarAttribute, AvatarAttribute> mapping) {
         for (AvatarAttribute attribute: this.attributes) {
             // TODO: We should use different attributes for different library function call
             String name = this.name + "__" + attribute.getName ();
@@ -334,7 +332,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      * @param returnAttributes
      *      A list of the attributes that should receive return values.
      */
-    public void addAttributesToMapping (HashMap<AvatarAttribute, AvatarAttribute> mapping, LinkedList<AvatarAttribute> parameters, LinkedList<AvatarAttribute> returnAttributes) {
+    public void addAttributesToMapping( Map<AvatarAttribute, AvatarAttribute> mapping, List<AvatarAttribute> parameters, List<AvatarAttribute> returnAttributes) {
         Iterator<AvatarAttribute> placeholders = this.parameters.iterator ();
         for (AvatarAttribute attr: parameters)
             mapping.put (placeholders.next (), attr);
@@ -352,7 +350,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      * @param signals
      *      A list of the attributes that were passed as parameters.
      */
-    public void addSignalsToMapping (HashMap<AvatarSignal, AvatarSignal> mapping, LinkedList<AvatarSignal> signals) {
+    public void addSignalsToMapping( Map<AvatarSignal, AvatarSignal> mapping, List<AvatarSignal> signals) {
         Iterator<AvatarSignal> placeholders = this.signals.iterator ();
         for (AvatarSignal signal: signals)
             mapping.put (placeholders.next (), signal);
@@ -366,12 +364,12 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
         /**
          * A mapping from placeholders to attributes of the block.
          */
-        public HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping;
+        public Map<AvatarAttribute, AvatarAttribute> placeholdersMapping;
 
         /**
          * A mapping from placeholders to signals of the block.
          */
-        public HashMap<AvatarSignal, AvatarSignal> signalsMapping;
+        public Map<AvatarSignal, AvatarSignal> signalsMapping;
 
         /**
          * The previous element of the state machine being created.
@@ -386,7 +384,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
         /**
          * A mapping from placeholder state machine elements to "real" elements.
          */
-        public HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping;
+        public Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping;
 
         /**
          * The block the function call belongs to.
@@ -423,7 +421,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
          * @param counter
          *      The counter for the library function call.
          */
-        public TranslatorArgument (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, HashMap<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) {
+        public TranslatorArgument( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement previousElement, AvatarStateMachineElement lastElement, Map<AvatarStateMachineElement, AvatarStateMachineElement> elementsMapping, AvatarBlock block, Object referenceObject, int counter) {
             this.placeholdersMapping = placeholdersMapping;
             this.signalsMapping = signalsMapping;
             this.previousElement = previousElement;
@@ -451,7 +449,7 @@ public class AvatarLibraryFunction extends AvatarElement implements AvatarTransl
      *
      * @return The last element of the state machine created.
      */
-    public AvatarState translateASMWithMapping (HashMap<AvatarAttribute, AvatarAttribute> placeholdersMapping, HashMap<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) {
+    public AvatarState translateASMWithMapping( Map<AvatarAttribute, AvatarAttribute> placeholdersMapping, Map<AvatarSignal, AvatarSignal> signalsMapping, AvatarStateMachineElement firstElement, AvatarBlock block, Object referenceObject, int counter) {
         /* Create the last state */
         AvatarState lastState = new AvatarState ("exit_" + this.name + "_" + counter, referenceObject);
 
diff --git a/src/main/java/avatartranslator/AvatarMethod.java b/src/main/java/avatartranslator/AvatarMethod.java
index d8769e81c0231880689d6334fea90b11f3cc337a..a8d5c41d10c0e90aa0d12cd4371f31b40141fa9c 100644
--- a/src/main/java/avatartranslator/AvatarMethod.java
+++ b/src/main/java/avatartranslator/AvatarMethod.java
@@ -36,13 +36,10 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 import java.util.LinkedList;
+import java.util.List;
 
 /**
  * Class AvatarMethod
@@ -55,8 +52,8 @@ public class AvatarMethod extends AvatarElement {
 
     protected boolean implementationProvided;
 
-    protected LinkedList<AvatarAttribute> parameters;
-    protected LinkedList<AvatarAttribute> returnParameters;
+    protected List<AvatarAttribute> parameters;
+    protected List<AvatarAttribute> returnParameters;
 
 
     public AvatarMethod(String _name, Object _referenceObject) {
@@ -81,11 +78,11 @@ public class AvatarMethod extends AvatarElement {
         returnParameters.add(_attribute);
     }
 
-    public LinkedList<AvatarAttribute> getListOfAttributes() {
+    public List<AvatarAttribute> getListOfAttributes() {
         return parameters;
     }
 
-    public LinkedList<AvatarAttribute> getListOfReturnAttributes() {
+    public List<AvatarAttribute> getListOfReturnAttributes() {
         return returnParameters;
     }
 
@@ -93,6 +90,7 @@ public class AvatarMethod extends AvatarElement {
         return AvatarTerm.isValidName (_method);
     }
 
+    @Override
     public String toString() {
         int cpt = 0;
         String ret = "";
@@ -196,20 +194,18 @@ public class AvatarMethod extends AvatarElement {
     }
 
     protected void setAdvancedClone(AvatarMethod am, AvatarStateMachineOwner _block) {
-	am.setImplementationProvided(isImplementationProvided());
-	for(AvatarAttribute param: parameters) {
-	    am.addParameter(param.advancedClone(_block));
-	}
-	for(AvatarAttribute ret: returnParameters) {
-	    am.addReturnParameter(ret.advancedClone(_block));
-	}
+    	am.setImplementationProvided(isImplementationProvided());
+    	for(AvatarAttribute param: parameters) {
+    		am.addParameter(param.advancedClone(_block));
+    	}
+    	for(AvatarAttribute ret: returnParameters) {
+    		am.addReturnParameter(ret.advancedClone(_block));
+    	}
     }
 
     public AvatarMethod advancedClone(AvatarStateMachineOwner _block) {
-	AvatarMethod am = new AvatarMethod(getName(), getReferenceObject());
-	setAdvancedClone(am, _block);	
-	return am;
+    	AvatarMethod am = new AvatarMethod(getName(), getReferenceObject());
+    	setAdvancedClone(am, _block);	
+    	return am;
     }
-
-
 }
diff --git a/src/main/java/avatartranslator/AvatarSignal.java b/src/main/java/avatartranslator/AvatarSignal.java
index cafc2478f817181a7e5df420a6f99a4e9db82154..1567d085d5e92a575558763b5e92a9acdc87ef41 100644
--- a/src/main/java/avatartranslator/AvatarSignal.java
+++ b/src/main/java/avatartranslator/AvatarSignal.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 /**
@@ -51,7 +47,7 @@ package avatartranslator;
  */
 public class AvatarSignal extends AvatarMethod {
 
-    // Signa type
+    // Signal type
     public final static int IN = 0;
     public final static int OUT = 1;
 
@@ -59,8 +55,9 @@ public class AvatarSignal extends AvatarMethod {
 
     public AvatarSignal(String _name, int _inout, Object _referenceObject) {
         super(_name, _referenceObject);
+        
         inout = _inout;
-	name = _name;
+        name = _name;
     }
 
     public int getInOut() {
@@ -87,6 +84,7 @@ public class AvatarSignal extends AvatarMethod {
         return AvatarTerm.isValidName (_signal);
     }
 
+    @Override
     public String toString() {
         String ret = super.toString();
         if (isOut()) {
@@ -95,7 +93,7 @@ public class AvatarSignal extends AvatarMethod {
         return "in " + ret;
     }
 
-
+    @Override
     public String toBasicString() {
         String ret = super.toBasicString();
         if (isOut()) {
@@ -139,18 +137,18 @@ public class AvatarSignal extends AvatarMethod {
         return cumul;
 	}*/
     //fin DG 
-    public AvatarSignal advancedClone(AvatarStateMachineOwner _block) {
-	AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject());
-	setAdvancedClone(as, _block);
-	return as;
-    }
+	public AvatarSignal advancedClone(AvatarStateMachineOwner _block) {
+		AvatarSignal as = new AvatarSignal(getName(), getInOut(), getReferenceObject());
+		setAdvancedClone(as, _block);
+		return as;
+	}
 
 
-    public boolean isCompatibleWith(AvatarSignal _as) {
-	if (getInOut() == _as.getInOut()) {
-	    return false;
-	}
+	public boolean isCompatibleWith(AvatarSignal _as) {
+		if (getInOut() == _as.getInOut()) {
+			return false;
+		}
 
-	return super.isCompatibleWith(_as);
-    }
+		return super.isCompatibleWith(_as);
+	}
 }
diff --git a/src/main/java/avatartranslator/AvatarSimpleGuard.java b/src/main/java/avatartranslator/AvatarSimpleGuard.java
index c45a25e9efc6e98bef828af42729f0112a91b431..7b2ea465a8386035a66cf4df70642f977e57fd99 100644
--- a/src/main/java/avatartranslator/AvatarSimpleGuard.java
+++ b/src/main/java/avatartranslator/AvatarSimpleGuard.java
@@ -36,13 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-
 /**
  * An AvatarSimpleGuard is an {@link AvatarGuard} that is of the form:
  * {@link AvatarTerm} binaryOp {@link AvatarTerm} or simply {@link AvatarTerm}, or else
diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java
index 2054de47883a288f756295951abef95d8b160b3f..d6aa10cb0a4c0669e59db53270b843d7a6f2a4e4 100644
--- a/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java
+++ b/src/main/java/avatartranslator/AvatarSimpleGuardDuo.java
@@ -36,14 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
-
+import java.util.Map;
 
 /**
  * An AvatarSimpleGuardDuo is an {@link AvatarSimpleGuard} that is of the form:
@@ -85,7 +80,7 @@ public class AvatarSimpleGuardDuo extends AvatarSimpleGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         if (this.termA instanceof AvatarAttribute)
         {
             this.termA = attributesMapping.get(this.termA);
diff --git a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java
index f7ab27ac03485284847468cddebfd364321901ec..58aeefdd90e87cf1c8dfa12158c546ffab28903d 100644
--- a/src/main/java/avatartranslator/AvatarSimpleGuardMono.java
+++ b/src/main/java/avatartranslator/AvatarSimpleGuardMono.java
@@ -41,10 +41,9 @@
    * Class AvatarSimpleGuardMono
  */
 
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 
 /**
@@ -75,10 +74,11 @@ public class AvatarSimpleGuardMono extends AvatarSimpleGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
-        for (AvatarAttribute attr: attributesMapping.keySet())
-        {
-        }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
+//        for (AvatarAttribute attr: attributesMapping.keySet())
+//        {
+//        }
+        
         if (this.term instanceof AvatarAttribute)
         {
             this.term = attributesMapping.get(this.term);
diff --git a/src/main/java/avatartranslator/AvatarSpecification.java b/src/main/java/avatartranslator/AvatarSpecification.java
index 00a4340256127afcfe8c87e9f754c7192fc7d4b0..9d2bcf10a0bc03cea16cfe8df34291d32daecc77 100644
--- a/src/main/java/avatartranslator/AvatarSpecification.java
+++ b/src/main/java/avatartranslator/AvatarSpecification.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 import myutil.Conversion;
@@ -58,7 +54,8 @@ import java.util.ArrayList;
    * @author Ludovic APVRILLE
  */
 public class AvatarSpecification extends AvatarElement {
-    public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"};
+    
+	public static String[] ops = {">", "<", "+", "-", "*", "/", "[", "]", "(", ")", ":", "=", "==", ",", "!", "?", "{", "}", "|", "&"};
     
     private List<AvatarBlock> blocks;
     private List<AvatarRelation> relations;
@@ -72,10 +69,10 @@ public class AvatarSpecification extends AvatarElement {
 
     //private AvatarBroadcast broadcast;
 
-    private LinkedList<AvatarPragma> pragmas;
-    private LinkedList<String> safety_pragmas;
-	private LinkedList<AvatarPragmaLatency> latency_pragmas;
-    private LinkedList<AvatarConstant> constants;
+    private List<AvatarPragma> pragmas;
+    private List<String> safety_pragmas;
+	private List<AvatarPragmaLatency> latency_pragmas;
+    private List<AvatarConstant> constants;
 	public List<String> checkedIDs;
     private boolean robustnessMade = false;
 
@@ -88,8 +85,8 @@ public class AvatarSpecification extends AvatarElement {
         relations = new LinkedList<AvatarRelation>();
         //broadcast = new AvatarBroadcast("Broadcast", _referenceObject);
         pragmas = new LinkedList<AvatarPragma>();
-	constants = new LinkedList<AvatarConstant>();
-	safety_pragmas = new LinkedList<String>();
+        constants = new LinkedList<AvatarConstant>();
+        safety_pragmas = new LinkedList<String>();
 		latency_pragmas = new LinkedList<AvatarPragmaLatency>();
         this.constants.add (AvatarConstant.FALSE);
         this.constants.add (AvatarConstant.TRUE);
@@ -165,11 +162,11 @@ public class AvatarSpecification extends AvatarElement {
     }
 
     public int getNbOfASMGraphicalElements() {
-	int cpt = 0;
-	for(AvatarBlock block: blocks) {
-	    cpt += block.getNbOfASMGraphicalElements();
-	}
-	return cpt;
+    	int cpt = 0;
+    	for(AvatarBlock block: blocks) {
+    		cpt += block.getNbOfASMGraphicalElements();
+    	}
+    	return cpt;
     }
 
     public boolean isASynchronousSignal(AvatarSignal _as) {
@@ -180,7 +177,6 @@ public class AvatarSpecification extends AvatarElement {
         }
 
         return false;
-
     }
 
     //DG
@@ -226,12 +222,13 @@ public class AvatarSpecification extends AvatarElement {
     }
 
     public void addConstant(AvatarConstant _constant) {
-	//Only add unique constants
-	if (this.getAvatarConstantWithName(_constant.getName())==null){
-	    constants.add(_constant);
-	}
+    	//Only add unique constants
+    	if (this.getAvatarConstantWithName(_constant.getName())==null){
+    		constants.add(_constant);
+    	}
     }
 
+    @Override
     public String toString() {
         //Thread.currentThread().dumpStack();
         StringBuffer sb = new StringBuffer("Blocks:\n");
@@ -246,11 +243,11 @@ public class AvatarSpecification extends AvatarElement {
         for(AvatarPragma pragma: pragmas) {
             sb.append("Pragma:" + pragma.toString() + "\n");
         }
-	for (AvatarConstant constant: constants){
-	    sb.append("Constant:" + constant.toString() + "\n");
-	}
-        return sb.toString();
+		for (AvatarConstant constant: constants){
+		    sb.append("Constant:" + constant.toString() + "\n");
+		}
 
+		return sb.toString();
     }
 
     public AvatarBlock getBlockWithName(String _name) {
@@ -263,9 +260,6 @@ public class AvatarSpecification extends AvatarElement {
         return null;
     }
 
-
-    
-
     public AvatarConstant getAvatarConstantWithName(String _name) {
         for(AvatarConstant constant: constants) {
             if (constant.getName().compareTo(_name)== 0) {
@@ -275,6 +269,7 @@ public class AvatarSpecification extends AvatarElement {
 
         return null;
     }
+
     public static String putAttributeValueInString(String _source, AvatarAttribute _at) {
         return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getDefaultInitialValue());
     }
@@ -283,7 +278,6 @@ public class AvatarSpecification extends AvatarElement {
         return Conversion.putVariableValueInString(ops, _source, _at.getName(), _at.getInitialValue());
     }
 
-
     public void removeCompositeStates() {
         for(AvatarBlock block: blocks) {
 	    //TraceManager.addDev("- - - - - - - - Removing composite states of " + block);
@@ -291,17 +285,14 @@ public class AvatarSpecification extends AvatarElement {
         }
     }
 
-
     public void makeFullStates() {
-	for(AvatarBlock block: blocks) {
-	    //TraceManager.addDev("- - - - - - - - Making full states of " + block);
+    	for(AvatarBlock block: blocks) {
             block.getStateMachine().makeFullStates(block);
         }
     }
 
     public void removeRandoms() {
-	for(AvatarBlock block: blocks) {
-	    //TraceManager.addDev("- - - - - - - - Removing randoms of " + block);
+		for(AvatarBlock block: blocks) {
             block.getStateMachine().removeRandoms(block);
         }
     }
@@ -309,11 +300,11 @@ public class AvatarSpecification extends AvatarElement {
     public void removeTimers() {
         //renameTimers();
 
-        LinkedList<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>();
+        List<AvatarBlock> addedBlocks = new LinkedList<AvatarBlock>();
         for(AvatarBlock block: blocks) {
-	    if (block.hasTimerAttribute()) {
-		block.removeTimers(this, addedBlocks);
-	    }
+        	if (block.hasTimerAttribute()) {
+        		block.removeTimers(this, addedBlocks);
+        	}
         }
 
         for(int i=0; i<addedBlocks.size(); i++) {
@@ -348,81 +339,75 @@ public class AvatarSpecification extends AvatarElement {
      * The size of the infinite fifo is max 1024
      * and min 1
      */
-
-    
     public void removeFIFOs(int _maxSizeOfInfiniteFifo) {
-	
-	LinkedList<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>();
-	LinkedList<AvatarRelation> newOnes = new LinkedList<AvatarRelation>();
-
-	int FIFO_ID = 0;
-	for(AvatarRelation ar: relations) {
-	    if (ar.isAsynchronous()) {
-		// Must be removed
-		int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO());
-		TraceManager.addDev("***************************** Size of FIFO:" + size);
-		size = Math.max(1, size);
-		FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID);
-	    }
-	}
-
-	for(AvatarRelation ar: oldOnes) {
-	    relations.remove(ar);
-	}
-
-	for(AvatarRelation ar: newOnes) {
-	    relations.add(ar);
-	}
-    }
-
-    private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID ) {
-	for(int i=0; i<_ar.nbOfSignals(); i++) {
-	    if (_ar.getSignal1(i).isIn()) {
-		FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
-	    } else {
-		FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
-	    }
-	}
-	_oldOnes.add(_ar);
-	return FIFO_ID;
+    	List<AvatarRelation> oldOnes = new LinkedList<AvatarRelation>();
+    	List<AvatarRelation> newOnes = new LinkedList<AvatarRelation>();
+
+    	int FIFO_ID = 0;
+    	for(AvatarRelation ar: relations) {
+    		if (ar.isAsynchronous()) {
+    			// Must be removed
+    			int size = Math.min(_maxSizeOfInfiniteFifo, ar.getSizeOfFIFO());
+    			TraceManager.addDev("***************************** Size of FIFO:" + size);
+    			size = Math.max(1, size);
+    			FIFO_ID = removeFIFO(ar, size, oldOnes, newOnes, FIFO_ID);
+    		}
+    	}
+
+    	for(AvatarRelation ar: oldOnes) {
+    		relations.remove(ar);
+    	}
+
+    	for(AvatarRelation ar: newOnes) {
+    		relations.add(ar);
+    	}
+    }
+
+    private int removeFIFO(AvatarRelation _ar, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID ) {
+    	for(int i=0; i<_ar.nbOfSignals(); i++) {
+    		if (_ar.getSignal1(i).isIn()) {
+    			FIFO_ID = removeFIFO(_ar, _ar.getSignal2(i), _ar.getSignal1(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
+    		} else {
+    			FIFO_ID = removeFIFO(_ar, _ar.getSignal1(i), _ar.getSignal2(i), _sizeOfInfiniteFifo, _oldOnes, _newOnes, FIFO_ID);
+    		}
+    	}
+    	_oldOnes.add(_ar);
+    	return FIFO_ID;
     }
-
     
-    private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, LinkedList<AvatarRelation> _oldOnes, LinkedList<AvatarRelation> _newOnes, int FIFO_ID) {
-	// We create the new block, and the new relation towards the new block
-	String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID;
-	AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID);
-	blocks.add(fifoBlock);
-
-	// We now need to create the new relation
-	AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject());
-	newAR1.setAsynchronous(false);
-	newAR1.setPrivate(_ar.isPrivate());
-	newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write"));
-	_newOnes.add(newAR1);
-
-	AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject());
-	newAR2.setAsynchronous(false);
-	newAR2.setPrivate(_ar.isPrivate());
-	newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2);
-	_newOnes.add(newAR2);
-	
-	FIFO_ID ++;
-	return FIFO_ID;
+    private int removeFIFO(AvatarRelation _ar, AvatarSignal _sig1, AvatarSignal _sig2, int _sizeOfInfiniteFifo, List<AvatarRelation> _oldOnes, List<AvatarRelation> _newOnes, int FIFO_ID) {
+    	// We create the new block, and the new relation towards the new block
+    	String nameOfBlock = "FIFO__" + _sig1.getName() + "__" + _sig2.getName() + "__" + FIFO_ID;
+    	AvatarBlock fifoBlock = AvatarBlockTemplate.getFifoBlock(nameOfBlock, this, _ar, _ar.getReferenceObject(), _sig1, _sig2, _sizeOfInfiniteFifo, FIFO_ID);
+    	blocks.add(fifoBlock);
+
+    	// We now need to create the new relation
+    	AvatarRelation newAR1 = new AvatarRelation("FIFO__write_" + FIFO_ID, _ar.block1, fifoBlock, _ar.getReferenceObject());
+    	newAR1.setAsynchronous(false);
+    	newAR1.setPrivate(_ar.isPrivate());
+    	newAR1.addSignals(_sig1, fifoBlock.getSignalByName("write"));
+    	_newOnes.add(newAR1);
+
+    	AvatarRelation newAR2 = new AvatarRelation("FIFO__read_" + FIFO_ID, fifoBlock, _ar.block2, _ar.getReferenceObject());
+    	newAR2.setAsynchronous(false);
+    	newAR2.setPrivate(_ar.isPrivate());
+    	newAR2.addSignals(fifoBlock.getSignalByName("read"), _sig2);
+    	_newOnes.add(newAR2);
+
+    	FIFO_ID ++;
+    	return FIFO_ID;
     }
-    
-    
 
     public boolean areSynchronized(AvatarSignal as1, AvatarSignal as2) {
-	AvatarRelation ar = getAvatarRelationWithSignal(as1);
-	if (ar == null) {
-	    return false;
-	}
+    	AvatarRelation ar = getAvatarRelationWithSignal(as1);
+    	if (ar == null) {
+    		return false;
+    	}
 
-	int index1 = ar.getIndexOfSignal(as1);
-	int index2 = ar.getIndexOfSignal(as2);
+    	int index1 = ar.getIndexOfSignal(as1);
+    	int index2 = ar.getIndexOfSignal(as2);
 
-	return (index1 == index2);
+    	return (index1 == index2);
     }
 
     public AvatarRelation getAvatarRelationWithSignal(AvatarSignal _as) {
diff --git a/src/main/java/avatartranslator/AvatarState.java b/src/main/java/avatartranslator/AvatarState.java
index 99503b3a2abc0caeb2d923e72065765a98b47eaf..3dc8238c19c2d8dc7fa70564dbf8f0ae84d412c2 100644
--- a/src/main/java/avatartranslator/AvatarState.java
+++ b/src/main/java/avatartranslator/AvatarState.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
 /**
diff --git a/src/main/java/avatartranslator/AvatarStateElement.java b/src/main/java/avatartranslator/AvatarStateElement.java
index 65c2258a57d550df0deaf0adbd0861e067b504d7..87584cbd42e3ff09d9856322e5fc6d967bded777 100644
--- a/src/main/java/avatartranslator/AvatarStateElement.java
+++ b/src/main/java/avatartranslator/AvatarStateElement.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 /**
@@ -49,13 +46,11 @@ package avatartranslator;
  */
 public abstract class AvatarStateElement extends AvatarStateMachineElement {
 
-
     public AvatarStateElement(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
     }
 
-    public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) {
-        super(_name, _referenceObject, _isCheckable, _isChecked);
+    public AvatarStateElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked ) {
+        super(_name, _referenceObject, _isCheckable, _isChecked );
     }
-
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachine.java b/src/main/java/avatartranslator/AvatarStateMachine.java
index 5f837d6f1b33f2ca8a5919c1122d3581babc91ec..2170c62dfd269da1f8f4007015d39c54d0d807e8 100644
--- a/src/main/java/avatartranslator/AvatarStateMachine.java
+++ b/src/main/java/avatartranslator/AvatarStateMachine.java
@@ -36,14 +36,12 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
 import myutil.TraceManager;
 
 import java.util.*;
 
-
 /**
  * Class AvatarStateMachine
  * State machine, with composite states
@@ -57,15 +55,14 @@ public class AvatarStateMachine extends AvatarElement {
     public AvatarStateElement[] allStates;
 
 
-    protected LinkedList<AvatarStateMachineElement> elements;
+    protected List<AvatarStateMachineElement> elements;
     protected AvatarStartState startState;
 
     private static int ID_ELT = 0;
 
-    protected LinkedList<AvatarStateMachineElement> states;
+    protected List<AvatarStateMachineElement> states;
     protected AvatarStateMachineOwner block;
 
-
     public AvatarStateMachine(AvatarStateMachineOwner _block, String _name, Object _referenceObject) {
         super(_name, _referenceObject);
         block = _block;
@@ -105,7 +102,7 @@ public class AvatarStateMachine extends AvatarElement {
         states = null;
     }
 
-    public LinkedList<AvatarStateMachineElement> getListOfElements() {
+    public List<AvatarStateMachineElement> getListOfElements() {
         return elements;
     }
 
@@ -159,7 +156,7 @@ public class AvatarStateMachine extends AvatarElement {
         return null;
     }
 
-    private int getSimplifiedElementsAux(HashMap<AvatarStateMachineElement, Integer> simplifiedElements, HashSet<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) {
+    private int getSimplifiedElementsAux( Map<AvatarStateMachineElement, Integer> simplifiedElements, Set<AvatarStateMachineElement> visited, AvatarStateMachineElement root, int counter) {
         if (visited.contains(root)) {
             Integer name = simplifiedElements.get(root);
             if (name == null) {
@@ -179,12 +176,13 @@ public class AvatarStateMachine extends AvatarElement {
         return counter;
     }
 
-    public HashMap<AvatarStateMachineElement, Integer> getSimplifiedElements() {
-        HashMap<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>();
+    public Map<AvatarStateMachineElement, Integer> getSimplifiedElements() {
+        Map<AvatarStateMachineElement, Integer> simplifiedElements = new HashMap<AvatarStateMachineElement, Integer>();
         this.getSimplifiedElementsAux(simplifiedElements, new HashSet<AvatarStateMachineElement>(), startState, 0);
         return simplifiedElements;
     }
 
+    @Override
     public String toString() {
         StringBuffer sb = new StringBuffer("State machine Id=" + getID() + "\n");
 
@@ -204,9 +202,8 @@ public class AvatarStateMachine extends AvatarElement {
         addStatesToNonEmptyTransitionsBetweenNonStateToState(_block);
     }
 
-
     private void addStatesToEmptyNonTerminalEmptyNext(AvatarBlock _b) {
-        ArrayList<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toConsider = new ArrayList<AvatarStateMachineElement>();
         for (AvatarStateMachineElement elt : elements) {
             if (!(elt instanceof AvatarStopState)) {
                 if (elt.getNext(0) == null) {
@@ -231,7 +228,7 @@ public class AvatarStateMachine extends AvatarElement {
     private void addStatesToNonEmptyTransitionsBetweenNonStateToState(AvatarBlock _block) {
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         int id = 0;
 
         for (AvatarStateMachineElement elt : elements) {
@@ -273,7 +270,7 @@ public class AvatarStateMachine extends AvatarElement {
     private void addStatesToTransitionsBetweenTwoNonStates(AvatarBlock _block) {
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         int id = 0;
 
         for (AvatarStateMachineElement elt : elements) {
@@ -319,7 +316,7 @@ public class AvatarStateMachine extends AvatarElement {
     private void addStatesToActionTransitions(AvatarBlock _block) {
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         int id = 0;
         for (AvatarStateMachineElement elt : elements) {
             if (elt instanceof AvatarTransition) {
@@ -384,11 +381,10 @@ public class AvatarStateMachine extends AvatarElement {
 
     }
 
-
     public void removeRandoms(AvatarBlock _block) {
         int id = 0;
-        ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
-        ArrayList<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> toAdd = new ArrayList<AvatarStateMachineElement>();
         AvatarStateMachineElement next;
         AvatarStateMachineElement previous;
 
@@ -444,7 +440,7 @@ public class AvatarStateMachine extends AvatarElement {
     public void removeCompositeStates(AvatarBlock _block) {
         //TraceManager.addDev("\n-------------- Remove composite states ---------------\n");
 
-        LinkedList<AvatarState> lists = removeAllInternalStartStates();
+        /*LinkedList<AvatarState> lists =*/ removeAllInternalStartStates();
 
         AvatarTransition at = getAvatarCompositeTransition();
 
@@ -497,10 +493,10 @@ public class AvatarStateMachine extends AvatarElement {
         // Contains in odd index: composite state
         // even index: new state replacing the start state
 
-        LinkedList<AvatarState> lists = removeAllInternalStartStates();
-        ArrayList<AvatarTransition> ats;
-        ArrayList<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
-        ArrayList<AvatarState> states = new ArrayList<AvatarState>();
+        /*List<AvatarState> lists =*/ removeAllInternalStartStates();
+        //List<AvatarTransition> ats;
+        List<AvatarStateMachineElement> toRemove = new ArrayList<AvatarStateMachineElement>();
+        List<AvatarState> states = new ArrayList<AvatarState>();
 
         AvatarTransition at;
 
@@ -536,7 +532,6 @@ public class AvatarStateMachine extends AvatarElement {
             }
 
             //removeCompositeTransition2(at, _block);
-
         }
 
         for (AvatarStateMachineElement asme : toRemove) {
@@ -678,19 +673,19 @@ public class AvatarStateMachine extends AvatarElement {
         }
     }
 
-
-    private ArrayList<AvatarTransition> getAllAvatarCompositeTransitions() {
-        ArrayList<AvatarTransition> ats = new ArrayList<AvatarTransition>();
-        for (AvatarStateMachineElement element : elements) {
-            if (element instanceof AvatarTransition) {
-                if ((isACompositeTransition((AvatarTransition) element))) {
-                    ats.add((AvatarTransition) element);
-                }
-            }
-        }
-
-        return ats;
-    }
+//
+//    private List<AvatarTransition> getAllAvatarCompositeTransitions() {
+//        List<AvatarTransition> ats = new ArrayList<AvatarTransition>();
+//        for (AvatarStateMachineElement element : elements) {
+//            if (element instanceof AvatarTransition) {
+//                if ((isACompositeTransition((AvatarTransition) element))) {
+//                    ats.add((AvatarTransition) element);
+//                }
+//            }
+//        }
+//
+//        return ats;
+//    }
 
 
     private void addFullInternalStates(AvatarState state, AvatarTransition _at) {
@@ -878,160 +873,160 @@ public class AvatarStateMachine extends AvatarElement {
 
     }*/
 
-    private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) {
-        /*if (_at.hasCompute()) {
-          AvatarState as0 = new AvatarState("splitstate0", null);
-          AvatarState as1 = new AvatarState("splitstate1", null);
-
-
-
-          AvatarTransition at = _at.basicCloneMe();
-          _at.removeAllActions();
-          _at.removeAllNexts();
-          _at.addNext(as);
-          as.addNext(at);
-          addElement(as);
-          addElement(at);
-          splitAvatarTransition(at);
-          }*/
-
-        TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction());
-        if (_at.getNbOfAction() > 1) {
-            TraceManager.addDev("New split state");
-            AvatarState as = new AvatarState("splitstate", null);
-            as.setHidden(true);
-            as.setState(_currentState);
-            AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block));
-            _at.removeAllActionsButTheFirstOne();
-            at.removeFirstAction();
-            at.addNext(_at.getNext(0));
-            _at.removeAllNexts();
-            _at.addNext(as);
-            as.addNext(at);
-            addElement(as);
-            addElement(at);
-
-            splitAvatarTransition(_at, _currentState);
-        }
-
-        if (_at.hasDelay()) {
-            AvatarStateMachineElement element = getPreviousElementOf(_at);
-            if (element.hasInUpperState(_currentState) == true) {
-                if (!(element instanceof AvatarState)) {
-                    // Must add an intermediate state
-                    String tmp = findUniqueStateName("internalstate__");
-                    AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject());
-                    addElement(as);
-                    as.setHidden(true);
-                    as.setState(_currentState);
-                    AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null);
-                    addElement(atn);
-                    element.removeNext(_at);
-                    element.addNext(atn);
-                    atn.addNext(as);
-                    as.addNext(_at);
-                    splitAvatarTransition(_at, _currentState);
-                }
-            }
-        }
-    }
-
-    private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) {
-        AvatarState as;
-        AvatarTransition at;
-        LinkedList<AvatarStateMachineElement> ll;
-        String tmp;
-
-        // It cannot be a start / stop state since they have been previously removed ..
-        if (_element instanceof AvatarActionOnSignal) {
-            AvatarStateMachineElement element = _element.getNext(0);
-            if (element instanceof AvatarTransition) {
-                if (!(((AvatarTransition) element).isEmpty())) {
-                    //We need to create a new state
-                    tmp = findUniqueStateName("internalstate__");
-                    TraceManager.addDev("Creating state with name=" + tmp);
-                    as = new AvatarState(tmp, null);
-                    addElement(as);
-                    as.setHidden(true);
-                    at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
-                    addElement(at);
-                    //_element -> at -> as -> element
-
-                    _element.removeNext(element);
-                    _element.addNext(at);
-
-                    at.addNext(as);
-                    as.addNext(element);
-
-                    at = cloneCompositeTransition(_at);
-                    //addElement(at);
-                    as.addNext(at);
-                } else {
-                    // We see if a state follows it. Otherwise, we create one
-                    if (!(element.getNext(0) instanceof AvatarState)) {
-                        //We need to create a new state
-                        tmp = findUniqueStateName("internalstate__");
-                        TraceManager.addDev("Creating state with name=" + tmp);
-                        as = new AvatarState(tmp, null);
-                        addElement(as);
-                        as.setHidden(true);
-                        at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
-                        addElement(at);
-                        //_element -> at -> as -> element
-
-                        _element.removeNext(element);
-                        _element.addNext(at);
-
-                        at.addNext(as);
-                        as.addNext(element);
-
-                        at = cloneCompositeTransition(_at);
-                        //addElement(at);
-                        as.addNext(at);
-
-                    } else {
-                        //We link to this state-> will be done later
-                    }
-                }
-            }
-            /*ll = getPreviousElementsOf(_element);
-              for(AvatarStateMachineElement element: ll) {
-              if (element instanceof AvatarTransition) {
-              // if empty transition: we do just nothing
-              if (!(((AvatarTransition)element).isEmpty())) {
-              tmp = findUniqueStateName("internalstate__");
-              TraceManager.addDev("Creating state with name=" + tmp);
-              as = new AvatarState(tmp, null);
-              as.setHidden(true);
-              element.removeNext(_element);
-              element.addNext(as);
-              at = new AvatarTransition("internaltransition", null);
-              addElement(at);
-              at.addNext(_element);
-              as.addNext(at);
-              addElement(as);
-
-              at = cloneCompositeTransition(_at);
-              addElement(at);
-              as.addNext(at);
-              }
-
-              } else {
-              // Badly formed machine!
-              TraceManager.addError("Badly formed sm (removing composite transition)");
-              }
-              }*/
-
-        } else if (_element instanceof AvatarState) {
-            at = cloneCompositeTransition(_at);
-            //addElement(at);
-            _element.addNext(at);
-        } else if (_element instanceof AvatarTransition) {
-            // Nothing to do since they shall have been split before
-        } else {
-            // Nothing to do either
-        }
-    }
+//    private void splitAvatarTransitionOld(AvatarTransition _at, AvatarState _currentState) {
+//        /*if (_at.hasCompute()) {
+//          AvatarState as0 = new AvatarState("splitstate0", null);
+//          AvatarState as1 = new AvatarState("splitstate1", null);
+//
+//
+//
+//          AvatarTransition at = _at.basicCloneMe();
+//          _at.removeAllActions();
+//          _at.removeAllNexts();
+//          _at.addNext(as);
+//          as.addNext(at);
+//          addElement(as);
+//          addElement(at);
+//          splitAvatarTransition(at);
+//          }*/
+//
+//        TraceManager.addDev(" - - - - - - - - - - Split transition nbofactions=" + _at.getNbOfAction());
+//        if (_at.getNbOfAction() > 1) {
+//            TraceManager.addDev("New split state");
+//            AvatarState as = new AvatarState("splitstate", null);
+//            as.setHidden(true);
+//            as.setState(_currentState);
+//            AvatarTransition at = (AvatarTransition) (_at.basicCloneMe(block));
+//            _at.removeAllActionsButTheFirstOne();
+//            at.removeFirstAction();
+//            at.addNext(_at.getNext(0));
+//            _at.removeAllNexts();
+//            _at.addNext(as);
+//            as.addNext(at);
+//            addElement(as);
+//            addElement(at);
+//
+//            splitAvatarTransition(_at, _currentState);
+//        }
+//
+//        if (_at.hasDelay()) {
+//            AvatarStateMachineElement element = getPreviousElementOf(_at);
+//            if (element.hasInUpperState(_currentState) == true) {
+//                if (!(element instanceof AvatarState)) {
+//                    // Must add an intermediate state
+//                    String tmp = findUniqueStateName("internalstate__");
+//                    AvatarState as = new AvatarState(tmp, _currentState.getReferenceObject());
+//                    addElement(as);
+//                    as.setHidden(true);
+//                    as.setState(_currentState);
+//                    AvatarTransition atn = new AvatarTransition(_at.getBlock(), "internaltransition", null);
+//                    addElement(atn);
+//                    element.removeNext(_at);
+//                    element.addNext(atn);
+//                    atn.addNext(as);
+//                    as.addNext(_at);
+//                    splitAvatarTransition(_at, _currentState);
+//                }
+//            }
+//        }
+//    }
+
+//    private void adaptCompositeTransition(AvatarTransition _at, AvatarStateMachineElement _element, int _transitionID) {
+//        AvatarState as;
+//        AvatarTransition at;
+//        LinkedList<AvatarStateMachineElement> ll;
+//        String tmp;
+//
+//        // It cannot be a start / stop state since they have been previously removed ..
+//        if (_element instanceof AvatarActionOnSignal) {
+//            AvatarStateMachineElement element = _element.getNext(0);
+//            if (element instanceof AvatarTransition) {
+//                if (!(((AvatarTransition) element).isEmpty())) {
+//                    //We need to create a new state
+//                    tmp = findUniqueStateName("internalstate__");
+//                    TraceManager.addDev("Creating state with name=" + tmp);
+//                    as = new AvatarState(tmp, null);
+//                    addElement(as);
+//                    as.setHidden(true);
+//                    at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
+//                    addElement(at);
+//                    //_element -> at -> as -> element
+//
+//                    _element.removeNext(element);
+//                    _element.addNext(at);
+//
+//                    at.addNext(as);
+//                    as.addNext(element);
+//
+//                    at = cloneCompositeTransition(_at);
+//                    //addElement(at);
+//                    as.addNext(at);
+//                } else {
+//                    // We see if a state follows it. Otherwise, we create one
+//                    if (!(element.getNext(0) instanceof AvatarState)) {
+//                        //We need to create a new state
+//                        tmp = findUniqueStateName("internalstate__");
+//                        TraceManager.addDev("Creating state with name=" + tmp);
+//                        as = new AvatarState(tmp, null);
+//                        addElement(as);
+//                        as.setHidden(true);
+//                        at = new AvatarTransition(_at.getBlock(), "internaltransition", null);
+//                        addElement(at);
+//                        //_element -> at -> as -> element
+//
+//                        _element.removeNext(element);
+//                        _element.addNext(at);
+//
+//                        at.addNext(as);
+//                        as.addNext(element);
+//
+//                        at = cloneCompositeTransition(_at);
+//                        //addElement(at);
+//                        as.addNext(at);
+//
+//                    } else {
+//                        //We link to this state-> will be done later
+//                    }
+//                }
+//            }
+//            /*ll = getPreviousElementsOf(_element);
+//              for(AvatarStateMachineElement element: ll) {
+//              if (element instanceof AvatarTransition) {
+//              // if empty transition: we do just nothing
+//              if (!(((AvatarTransition)element).isEmpty())) {
+//              tmp = findUniqueStateName("internalstate__");
+//              TraceManager.addDev("Creating state with name=" + tmp);
+//              as = new AvatarState(tmp, null);
+//              as.setHidden(true);
+//              element.removeNext(_element);
+//              element.addNext(as);
+//              at = new AvatarTransition("internaltransition", null);
+//              addElement(at);
+//              at.addNext(_element);
+//              as.addNext(at);
+//              addElement(as);
+//
+//              at = cloneCompositeTransition(_at);
+//              addElement(at);
+//              as.addNext(at);
+//              }
+//
+//              } else {
+//              // Badly formed machine!
+//              TraceManager.addError("Badly formed sm (removing composite transition)");
+//              }
+//              }*/
+//
+//        } else if (_element instanceof AvatarState) {
+//            at = cloneCompositeTransition(_at);
+//            //addElement(at);
+//            _element.addNext(at);
+//        } else if (_element instanceof AvatarTransition) {
+//            // Nothing to do since they shall have been split before
+//        } else {
+//            // Nothing to do either
+//        }
+//    }
 
 
     // Return the first previous element met. Shall be used preferably only for transitions
@@ -1045,8 +1040,8 @@ public class AvatarStateMachine extends AvatarElement {
         return null;
     }
 
-    private LinkedList<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) {
-        LinkedList<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>();
+    private List<AvatarStateMachineElement> getPreviousElementsOf(AvatarStateMachineElement _elt) {
+        List<AvatarStateMachineElement> ll = new LinkedList<AvatarStateMachineElement>();
         for (AvatarStateMachineElement element : elements) {
             if (element.hasNext(_elt)) {
                 ll.add(element);
@@ -1083,11 +1078,11 @@ public class AvatarStateMachine extends AvatarElement {
 
     // All transitions reaching a state that has an internal start state
     // shall in fact go directly to the nexts of the start state
-    public LinkedList<AvatarState> removeAllInternalStartStates() {
+    public List<AvatarState> removeAllInternalStartStates() {
         // identify allstart state
-        LinkedList<AvatarStartState> ll = new LinkedList<AvatarStartState>();
+        List<AvatarStartState> ll = new LinkedList<AvatarStartState>();
 
-        LinkedList<AvatarState> removedinfos = new LinkedList<AvatarState>();
+        List<AvatarState> removedinfos = new LinkedList<AvatarState>();
 
         for (AvatarStateMachineElement element : elements) {
             if ((element instanceof AvatarStartState) && (element.getState() != null)) {
@@ -1097,7 +1092,7 @@ public class AvatarStateMachine extends AvatarElement {
         }
 
         AvatarState as0;
-        LinkedList<AvatarStateMachineElement> le;
+        List<AvatarStateMachineElement> le;
         for (AvatarStartState as : ll) {
             AvatarState astate = as.getState();
             if (as != null) {
@@ -1163,8 +1158,8 @@ public class AvatarStateMachine extends AvatarElement {
         AvatarSetTimer ast;
         AvatarTimerOperator ato;
 
-        LinkedList<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>();
-        LinkedList<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> olds = new LinkedList<AvatarStateMachineElement>();
+        List<AvatarStateMachineElement> news = new LinkedList<AvatarStateMachineElement>();
 
 
         for (AvatarStateMachineElement elt : elements) {
@@ -1177,7 +1172,7 @@ public class AvatarStateMachine extends AvatarElement {
                 news.add(aaos);
 
                 // Modifying the transition just before
-                LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(ast);
+                List<AvatarStateMachineElement> previous = getPreviousElementsOf(ast);
                 if (previous.size() == 1) {
                     if (previous.get(0) instanceof AvatarTransition) {
                         AvatarTransition at = (AvatarTransition) (previous.get(0));
@@ -1225,7 +1220,7 @@ public class AvatarStateMachine extends AvatarElement {
         removeElement(oldone);
 
         // Previous elements
-        LinkedList<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone);
+        List<AvatarStateMachineElement> previous = getPreviousElementsOf(oldone);
         for (AvatarStateMachineElement elt : previous) {
             elt.replaceAllNext(oldone, newone);
         }
@@ -1251,7 +1246,7 @@ public class AvatarStateMachine extends AvatarElement {
         //TraceManager.addDev("ADDING TIMER: " + aa.getName());
 
         // Timer is set at the entrance in the composite state
-        LinkedList<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at)));
+        List<AvatarTransition> ll = findEntranceTransitionElements((AvatarState) (getPreviousElementOf(_at)));
 
         AvatarTransition newat0, newat1;
         AvatarSetTimer ast;
@@ -1300,7 +1295,7 @@ public class AvatarStateMachine extends AvatarElement {
         newat1.addNext(as);
         _at.setDelays("", "");
 
-        LinkedList<AvatarStateMachineElement> elts = getElementsLeadingTo(_at);
+        List<AvatarStateMachineElement> elts = getElementsLeadingTo(_at);
 
         for (AvatarStateMachineElement elt : elts) {
             elt.removeNext(_at);
@@ -1312,9 +1307,9 @@ public class AvatarStateMachine extends AvatarElement {
         return newat0;
     }
 
-    public LinkedList<AvatarTransition> findEntranceTransitionElements(AvatarState _state) {
+    public List<AvatarTransition> findEntranceTransitionElements(AvatarState _state) {
         //TraceManager.addDev("Searching for transitions entering:" + _state.getName());
-        LinkedList<AvatarTransition> ll = new LinkedList<AvatarTransition>();
+        List<AvatarTransition> ll = new LinkedList<AvatarTransition>();
 
         for (AvatarStateMachineElement elt : elements) {
             if (elt instanceof AvatarTransition) {
@@ -1330,8 +1325,8 @@ public class AvatarStateMachine extends AvatarElement {
         return ll;
     }
 
-    public LinkedList<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) {
-        LinkedList<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>();
+    public List<AvatarStateMachineElement> getElementsLeadingTo(AvatarStateMachineElement _elt) {
+        List<AvatarStateMachineElement> elts = new LinkedList<AvatarStateMachineElement>();
 
         for (AvatarStateMachineElement elt : elements) {
             if (elt.hasNext(_elt)) {
@@ -1340,10 +1335,8 @@ public class AvatarStateMachine extends AvatarElement {
         }
 
         return elts;
-
     }
 
-
     public void modifyAvatarTransition(AvatarTransition _at) {
         /*if ((_at.getNbOfAction() > 0) || (_at.hasCompute())) {
           return;
@@ -1468,7 +1461,7 @@ public class AvatarStateMachine extends AvatarElement {
     }
 
     public void removeStopStatesOf(AvatarState _as) {
-        LinkedList<AvatarStopState> ll = new LinkedList<AvatarStopState>();
+        List<AvatarStopState> ll = new LinkedList<AvatarStopState>();
 
         for (AvatarStateMachineElement elt : elements) {
             if (elt instanceof AvatarStopState) {
@@ -1486,7 +1479,6 @@ public class AvatarStateMachine extends AvatarElement {
         }
     }
 
-
     public String findUniqueStateName(String name) {
         int id = 0;
         boolean found;
@@ -1529,8 +1521,8 @@ public class AvatarStateMachine extends AvatarElement {
         /* Perform BFS for AvatarLibraryFunctionCall elements. When one is found, replace it by the state machine and fix the links */
         LinkedList<AvatarStateMachineElement> toVisit = new LinkedList<AvatarStateMachineElement>();
         toVisit.add(this.startState);
-        HashSet<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>();
-        HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>();
+        Set<AvatarStateMachineElement> visited = new HashSet<AvatarStateMachineElement>();
+        Map<AvatarLibraryFunctionCall, AvatarStateMachineElement> callsTranslated = new HashMap<AvatarLibraryFunctionCall, AvatarStateMachineElement>();
 
         while (!toVisit.isEmpty()) {
             /* Get the first element of the queue */
@@ -1706,4 +1698,21 @@ public class AvatarStateMachine extends AvatarElement {
             }
         }
     }
+    
+    public AvatarTransition findEmptyTransition( 	final AvatarStateMachineElement elementSource,
+    												final AvatarStateMachineElement elementTarget ) {
+        for ( final AvatarStateMachineElement element : elements ) {
+            if ( element instanceof AvatarTransition ) {
+            	final AvatarTransition transition = (AvatarTransition) element;
+            	
+            	if ( transition.isEmpty() && !transition.getNexts().isEmpty() ) {
+            		if ( getPreviousElementOf( transition ) == elementSource && transition.getNexts().get( 0 ) == elementTarget ) {
+            			return transition;
+            		}
+            	}
+            }
+        }
+        
+        return null;
+    }
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachineElement.java b/src/main/java/avatartranslator/AvatarStateMachineElement.java
index e93dc6a3009e831c5671be4208b69a22facd3294..90e69d16b2a05b13d94e840c7b2254d6aae9bdef 100644
--- a/src/main/java/avatartranslator/AvatarStateMachineElement.java
+++ b/src/main/java/avatartranslator/AvatarStateMachineElement.java
@@ -43,6 +43,7 @@ import ui.TGComponent;
 
 import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -54,7 +55,7 @@ import java.util.LinkedList;
  */
 public abstract class AvatarStateMachineElement extends AvatarElement {
 
-    protected LinkedList<AvatarStateMachineElement> nexts;
+    protected List<AvatarStateMachineElement> nexts;
     private AvatarState myState;
 
     private boolean isCheckable;
@@ -63,18 +64,21 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
 
     private boolean isHidden = false;
 
-    public AvatarStateMachineElement(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
-        nexts = new LinkedList<AvatarStateMachineElement>();
-        canBeVerified = false;
+    public AvatarStateMachineElement(	final String _name, 
+    									final Object _referenceObject ) {
+    	this( _name, _referenceObject, false, false );
     }
 
-    public AvatarStateMachineElement(String _name, Object _referenceObject, boolean _isCheckable, boolean _isChecked) {
-        super(_name, _referenceObject);
+    public AvatarStateMachineElement(	String _name,
+    									Object _referenceObject,
+    									boolean _isCheckable,
+    									final boolean _isChecked ) {
+        super( _name, _referenceObject );
+        
         nexts = new LinkedList<AvatarStateMachineElement>();
         isCheckable = _isCheckable;
-        isChecked = _isChecked;
         canBeVerified = false;
+        isChecked = _isChecked;
     }
 
     public void setAsVerifiable(boolean _canBeVerified) {
@@ -107,7 +111,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
         }
     }
 
-    public LinkedList<AvatarStateMachineElement> getNexts() {
+    public List<AvatarStateMachineElement> getNexts() {
         return this.nexts;
     }
 
@@ -203,11 +207,12 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
 
     }
 
+    @Override
     public String toString() {
         return toString(null);
     }
 
-    public String toString(String val) {
+    protected String toString(String val) {
         String ret = getExtendedName() + " ID=" + getID();
         if (myState == null) {
             ret += " / top level operator\n";
@@ -255,7 +260,7 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
 
     public void replaceAllNext(AvatarStateMachineElement oldone, AvatarStateMachineElement newone) {
         if (nexts.contains(oldone)) {
-            LinkedList<AvatarStateMachineElement> oldnexts = nexts;
+            List<AvatarStateMachineElement> oldnexts = nexts;
             nexts = new LinkedList<AvatarStateMachineElement>();
             for (AvatarStateMachineElement elt : oldnexts) {
                 if (elt == oldone) {
@@ -391,6 +396,4 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
     public abstract String getNiceName();
 
     public abstract void translate(AvatarTranslator translator, Object arg);
-
-
 }
diff --git a/src/main/java/avatartranslator/AvatarStateMachineOwner.java b/src/main/java/avatartranslator/AvatarStateMachineOwner.java
index c5dba3d280cbd5efd95769edd11dfb4bf38a958e..0957a6226769f3bb57da7d2022dd9ae59634bf34 100644
--- a/src/main/java/avatartranslator/AvatarStateMachineOwner.java
+++ b/src/main/java/avatartranslator/AvatarStateMachineOwner.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.LinkedList;
-
+import java.util.List;
 
 /**
  *
@@ -50,10 +46,14 @@ import java.util.LinkedList;
  * @author Florian LUGOU
  */
 public interface AvatarStateMachineOwner {
-    String getName();
-    AvatarStateMachine getStateMachine();
-    AvatarSignal getAvatarSignalWithName(String signalName);
-    AvatarMethod getAvatarMethodWithName(String methodName);
+    
+	String getName();
+   
+	AvatarStateMachine getStateMachine();
+    
+	AvatarSignal getAvatarSignalWithName(String signalName);
+    
+	AvatarMethod getAvatarMethodWithName(String methodName);
 
     /**
      * Look for an attribute in the list of local attributes, parameters and return values.
@@ -66,7 +66,10 @@ public interface AvatarStateMachineOwner {
     AvatarAttribute getAvatarAttributeWithName(String attributeName);
 
     AvatarSpecification getAvatarSpecification();
-    LinkedList<AvatarAttribute> getAttributes();
+    
+    List<AvatarAttribute> getAttributes();
+    
     void addAttribute(AvatarAttribute attribute);
+    
     AvatarStateMachineOwner advancedClone(AvatarSpecification avspec);
 }
diff --git a/src/main/java/avatartranslator/AvatarStopState.java b/src/main/java/avatartranslator/AvatarStopState.java
index acea1bbec529acb17181700be126ee090b4de1d2..99fa3c7fb620ec15543732132649ae42719b29ac 100644
--- a/src/main/java/avatartranslator/AvatarStopState.java
+++ b/src/main/java/avatartranslator/AvatarStopState.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
 /**
@@ -55,8 +52,9 @@ public class AvatarStopState extends AvatarStateElement {
 
     public AvatarStateMachineElement basicCloneMe(AvatarStateMachineOwner _block) {
         AvatarStopState astop = new AvatarStopState(getName(), getReferenceObject());
-	astop.setAsVerifiable(canBeVerified());
-	return astop;
+        astop.setAsVerifiable(canBeVerified());
+	
+        return astop;
 	//return null;
     }
 
@@ -64,7 +62,7 @@ public class AvatarStopState extends AvatarStateElement {
         return "Stop state";
     }
 
-    public void translate (AvatarTranslator translator, Object arg) {
+    public void translate(AvatarTranslator translator, Object arg) {
         translator.translateStopState (this, arg);
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarSyntaxChecker.java b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
index 253302658ff05aecd99f9dcfab384ee7ed974f2a..96360b83b7db41ad844cd324bd2bbd1446d350ea 100644
--- a/src/main/java/avatartranslator/AvatarSyntaxChecker.java
+++ b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
@@ -36,11 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
+import java.io.StringReader;
+import java.util.List;
+
 import compiler.tmlparser.ParseException;
 import compiler.tmlparser.SimpleNode;
 import compiler.tmlparser.TMLExprParser;
@@ -50,9 +50,6 @@ import myutil.Conversion;
 import myutil.IntExpressionEvaluator;
 import myutil.TraceManager;
 
-import java.io.StringReader;
-import java.util.ArrayList;
-
 
 /**
  * Class AvatarSyntaxChecker
@@ -62,7 +59,6 @@ import java.util.ArrayList;
  */
 public class AvatarSyntaxChecker  {
 
-
     public AvatarSyntaxChecker() {
     }
 
@@ -87,7 +83,7 @@ public class AvatarSyntaxChecker  {
         BoolExpressionEvaluator bee = new BoolExpressionEvaluator();
 
         //TraceManager.addDev("Evaluating (modified) guard:" + act);
-        boolean result = bee.getResultOf(act);
+        //boolean result = bee.getResultOf(act);
         if (bee.getError() != null) {
             //TraceManager.addDev("Error: " + bee.getError());
             return -1;
@@ -114,7 +110,7 @@ public class AvatarSyntaxChecker  {
         IntExpressionEvaluator iee = new IntExpressionEvaluator();
 
         //TraceManager.addDev("Evaluating int:" + act);
-        double result = iee.getResultOf(act);
+        //double result = iee.getResultOf(act);
         if (iee.getError() != null) {
             //TraceManager.addDev("Error: " + iee.getError());
             return -1;
@@ -163,7 +159,7 @@ public class AvatarSyntaxChecker  {
         BoolExpressionEvaluator bee = new BoolExpressionEvaluator();
 
         //TraceManager.addDev("IsValidBoolExpr Evaluating bool:" + act);
-        boolean result = bee.getResultOf(act);
+        //boolean result = bee.getResultOf(act);
         if (bee.getError() != null) {
             //TraceManager.addDev("Error: " + bee.getError());
             return -1;
@@ -264,7 +260,7 @@ public class AvatarSyntaxChecker  {
         }  
 
         // Tree analysis: if the tree contains a variable, then, this variable has not been declared
-        ArrayList<String> vars = root.getVariables();
+        List<String> vars = root.getVariables();
         for(String s: vars) {
             // is that string a variable?
             if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) {
diff --git a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java
index 15e403fe145730444caf76b39e3bf9b95e80c97b..65cf724cdb308f4416f9c244e2691711dce95982 100644
--- a/src/main/java/avatartranslator/AvatarSyntaxTranslator.java
+++ b/src/main/java/avatartranslator/AvatarSyntaxTranslator.java
@@ -36,10 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
 /**
diff --git a/src/main/java/avatartranslator/AvatarTerm.java b/src/main/java/avatartranslator/AvatarTerm.java
index a1a3b96671587561fabd5a1b12b4036353260d68..45d9b5dfaae6b52e59a3893fca590d87388bd68b 100644
--- a/src/main/java/avatartranslator/AvatarTerm.java
+++ b/src/main/java/avatartranslator/AvatarTerm.java
@@ -36,17 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
+import java.util.Map;
+
 import myutil.TraceManager;
-import translator.RTLOTOSKeyword;
 import translator.JKeyword;
-
-import java.util.HashMap;
+import translator.RTLOTOSKeyword;
 
 /**
    * Class AvatarTerm
@@ -94,7 +90,7 @@ public abstract class AvatarTerm extends AvatarElement {
 
         try {
             // TODO: replace that by a true AvatarNumeric
-            int i = Integer.parseInt (toParse);
+            //int i = Integer.parseInt (toParse);
             result = new AvatarConstant (toParse, block);
             block.getAvatarSpecification ().addConstant ((AvatarConstant) result);
             return result;
@@ -176,5 +172,5 @@ public abstract class AvatarTerm extends AvatarElement {
      * @param attributesMapping
      *      The mapping used to replace the attributes of the term. All the attributes of the block should be present as keys.
      */
-    public abstract void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping);
+    public abstract void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping);
 }
diff --git a/src/main/java/avatartranslator/AvatarTermFunction.java b/src/main/java/avatartranslator/AvatarTermFunction.java
index 67da1aeb40e0f4b306c4c3a33f1fc9723a1db34b..ee3b154c59c1b7d8a2977c53a57392b728a4c2aa 100644
--- a/src/main/java/avatartranslator/AvatarTermFunction.java
+++ b/src/main/java/avatartranslator/AvatarTermFunction.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarTermFunction
@@ -111,6 +108,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction {
         return false;
     }
 
+    @Override
     public String toString () {
         return this.method.getName () + " " + this.args.toString ();
     }
@@ -126,7 +124,7 @@ public class AvatarTermFunction extends AvatarTerm implements AvatarAction {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         this.args.replaceAttributes (attributesMapping);
     }
 }
diff --git a/src/main/java/avatartranslator/AvatarTermRaw.java b/src/main/java/avatartranslator/AvatarTermRaw.java
index 5ac5006c7459e4bd731302f572bf2a03a39ae592..2eb9fb21f03deaa5e1fb730eb308380278402685 100644
--- a/src/main/java/avatartranslator/AvatarTermRaw.java
+++ b/src/main/java/avatartranslator/AvatarTermRaw.java
@@ -36,12 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarTermRaw
@@ -61,6 +58,7 @@ public class AvatarTermRaw extends AvatarTerm {
         return false;
     }
 
+    @Override
     public String toString () {
         return this.raw;
     }
@@ -76,5 +74,5 @@ public class AvatarTermRaw extends AvatarTerm {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) { }
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) { }
 }
diff --git a/src/main/java/avatartranslator/AvatarTransition.java b/src/main/java/avatartranslator/AvatarTransition.java
index 5413bfb2e1e02c43dd847f1fdf54fd17767b6042..257b17e8f9a9fc55d5000221fcefa80648eb3a5e 100644
--- a/src/main/java/avatartranslator/AvatarTransition.java
+++ b/src/main/java/avatartranslator/AvatarTransition.java
@@ -36,12 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package avatartranslator;
 
 import java.util.Iterator;
 import java.util.LinkedList;
-
+import java.util.List;
 
 /**
  * Class AvatarTransition
@@ -73,7 +72,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
     private String minCompute = "", maxCompute = "";
     private AvatarStateMachineOwner block;
 
-    private LinkedList<AvatarAction> actions; // actions on variable, or method call
+    private List<AvatarAction> actions; // actions on variable, or method call
 
     public AvatarTransition(AvatarStateMachineOwner _block, String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -135,7 +134,7 @@ public class AvatarTransition extends AvatarStateMachineElement {
         return false;
     }
 
-    public LinkedList<AvatarAction> getActions() {
+    public List<AvatarAction> getActions() {
         return this.actions;
     }
 
diff --git a/src/main/java/avatartranslator/AvatarTuple.java b/src/main/java/avatartranslator/AvatarTuple.java
index 973c9059020bc38373c2aee81a2e9c0a60aa6bf3..4386fe06f5aa479f3d67bd7b677d09608beb90b3 100644
--- a/src/main/java/avatartranslator/AvatarTuple.java
+++ b/src/main/java/avatartranslator/AvatarTuple.java
@@ -36,14 +36,11 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 
 /**
    * Class AvatarTuple
@@ -52,7 +49,7 @@ import java.util.LinkedList;
    * @author Florian LUGOU
  */
 public class AvatarTuple extends AvatarLeftHand {
-    LinkedList<AvatarTerm> components;
+    List<AvatarTerm> components;
 
     public AvatarTuple (Object _referenceObject) {
         super (null, _referenceObject);
@@ -96,7 +93,7 @@ public class AvatarTuple extends AvatarLeftHand {
         this.components.add (term);
     }
 
-    public LinkedList<AvatarTerm> getComponents () {
+    public List<AvatarTerm> getComponents () {
         return this.components;
     }
 
@@ -104,6 +101,7 @@ public class AvatarTuple extends AvatarLeftHand {
         return this.toString ();
     }
 
+    @Override
     public String toString () {
         String result = "(";
         boolean first = true;
@@ -142,8 +140,8 @@ public class AvatarTuple extends AvatarLeftHand {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
-        LinkedList<AvatarTerm> components = new LinkedList<AvatarTerm> ();
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
+        List<AvatarTerm> components = new LinkedList<AvatarTerm> ();
         for (AvatarTerm term: this.components)
             if (term instanceof AvatarAttribute)
                 components.add (attributesMapping.get (term));
diff --git a/src/main/java/avatartranslator/AvatarUnaryGuard.java b/src/main/java/avatartranslator/AvatarUnaryGuard.java
index 21c188478311f191a40529d9c0ba5d695ff3d85f..ed463e1d253e776a92bfb6eeded0ee038867ad28 100644
--- a/src/main/java/avatartranslator/AvatarUnaryGuard.java
+++ b/src/main/java/avatartranslator/AvatarUnaryGuard.java
@@ -36,13 +36,9 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator;
 
-import java.util.HashMap;
+import java.util.Map;
 
 /**
    * Class AvatarUnaryGuard
@@ -98,7 +94,7 @@ public class AvatarUnaryGuard extends AvatarComposedGuard {
     }
 
     @Override
-    public void replaceAttributes (HashMap<AvatarAttribute, AvatarAttribute> attributesMapping) {
+    public void replaceAttributes( Map<AvatarAttribute, AvatarAttribute> attributesMapping) {
         this.guard.replaceAttributes (attributesMapping);
     }
 }
diff --git a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
index e0768d667d19fda7306dc536c89194b5b6e2d5b2..c5c5564faf23285ed974b40e7a0868ba1db67752 100644
--- a/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
+++ b/src/main/java/avatartranslator/directsimulation/AvatarSimulationBlock.java
@@ -547,7 +547,7 @@ public class AvatarSimulationBlock {
     public void makeAction(String _action, Vector<String> _attributeValues, Vector<String> _actions) {
         String nameOfVar;
         String act;
-        String nameOfMethod;
+        //String nameOfMethod;
         int ind;
 
         AvatarAction action = AvatarTerm.createActionFromString(block, _action);
@@ -568,12 +568,12 @@ public class AvatarSimulationBlock {
             }
             act = act.substring(0, ind);
 
-            ind = nameOfVar.indexOf("=");
-            if (ind != -1) {
-                nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length());
-            } else {
-                nameOfMethod = nameOfVar;
-            }
+            //ind = nameOfVar.indexOf("=");
+//            if (ind != -1) {
+//                nameOfMethod = nameOfVar.substring(ind + 1, nameOfVar.length());
+//            } else {
+//                nameOfMethod = nameOfVar;
+//            }
 
             String[] params = act.split(",");
             String parameters = "";
diff --git a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java
index ef6ed4cd49395b4f15f0648977e0304db7ca4be2..517040496fd1d7b60ea3d17c01c1b5245ea7373c 100644
--- a/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java
+++ b/src/main/java/avatartranslator/modelchecker/SpecificationBlock.java
@@ -36,18 +36,14 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package avatartranslator.modelchecker;
 
+import java.util.Arrays;
+import java.util.List;
+
 import avatartranslator.AvatarAttribute;
 import avatartranslator.AvatarBlock;
 
-import java.util.Arrays;
-import java.util.LinkedList;
-
 /**
    * Class SpecificationBlock
    * Coding of a block
@@ -74,53 +70,53 @@ public class SpecificationBlock  {
     }
 
     public int getHash() {
-	return Arrays.hashCode(values);
+    	return Arrays.hashCode(values);
     }
 
     public void init(AvatarBlock _block, boolean _ignoreEmptyTransitions) {
-	
-	LinkedList<AvatarAttribute> attrs = _block.getAttributes();
-	//TraceManager.addDev("Nb of attributes:" + attrs.size());
-	//TraceManager.addDev("in block=" + _block.toString());
-	values = new int[HEADER_VALUES+attrs.size()];
-
-	// Initial state
-	if (_ignoreEmptyTransitions) {
-	    values[STATE_INDEX] = _block.getIndexOfRealStartState();
-	} else {
-	    values[STATE_INDEX] = _block.getIndexOfStartState();
-	}
-	
-	// Clock
-	values[CLOCKMIN_INDEX] = 0;
-	values[CLOCKMAX_INDEX] = 0;
-
-	// Attributes
-	int cpt = HEADER_VALUES;
-	String initial;
-	for(AvatarAttribute attr: attrs) {
-	    values[cpt++] = attr.getInitialValueInInt();
-	}	
+    	List<AvatarAttribute> attrs = _block.getAttributes();
+    	//TraceManager.addDev("Nb of attributes:" + attrs.size());
+    	//TraceManager.addDev("in block=" + _block.toString());
+    	values = new int[HEADER_VALUES+attrs.size()];
+
+    	// Initial state
+    	if (_ignoreEmptyTransitions) {
+    		values[STATE_INDEX] = _block.getIndexOfRealStartState();
+    	} else {
+    		values[STATE_INDEX] = _block.getIndexOfStartState();
+    	}
+
+    	// Clock
+    	values[CLOCKMIN_INDEX] = 0;
+    	values[CLOCKMAX_INDEX] = 0;
+
+    	// Attributes
+    	int cpt = HEADER_VALUES;
+    	//String initial;
+    	for(AvatarAttribute attr: attrs) {
+    		values[cpt++] = attr.getInitialValueInInt();
+    	}	
     }
 
+    @Override
     public String toString() {
-	StringBuffer sb = new StringBuffer("Hash=");
-	//sb.append(getHash());
-	for (int i=0; i<values.length; i++) {
-	    sb.append(" ");
-	    sb.append(values[i]);
-	}
-	return sb.toString();
+    	StringBuffer sb = new StringBuffer("Hash=");
+    	//sb.append(getHash());
+    	for (int i=0; i<values.length; i++) {
+    		sb.append(" ");
+    		sb.append(values[i]);
+    	}
+    	return sb.toString();
     }
 
     public SpecificationBlock advancedClone() {
-	SpecificationBlock sb = new SpecificationBlock();
-	sb.values = values.clone();
-	sb.maxClock = maxClock;
-	return sb;
+    	SpecificationBlock sb = new SpecificationBlock();
+    	sb.values = values.clone();
+    	sb.maxClock = maxClock;
+    	return sb;
     }
 
     public boolean hasTimedTransition() {
-	return true;
+    	return true;
     }
 }
diff --git a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
index 45765f96438e21dc9b033676aad3018685a27d49..2b66923be93a465a562185a01b8985f798edcb32 100755
--- a/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
+++ b/src/main/java/avatartranslator/toexecutable/AVATAR2CPOSIX.java
@@ -39,14 +39,41 @@
 
 package avatartranslator.toexecutable;
 
-import avatartranslator.*;
-import common.SpecConfigTTool;
-import myutil.*;
-
 import java.io.File;
-import java.util.LinkedList;
+import java.util.List;
 import java.util.Vector;
 
+import avatartranslator.AvatarAction;
+import avatartranslator.AvatarActionAssignment;
+import avatartranslator.AvatarActionOnSignal;
+import avatartranslator.AvatarArithmeticOp;
+import avatartranslator.AvatarAttribute;
+import avatartranslator.AvatarBlock;
+import avatartranslator.AvatarConstant;
+import avatartranslator.AvatarLeftHand;
+import avatartranslator.AvatarMethod;
+import avatartranslator.AvatarRandom;
+import avatartranslator.AvatarRelation;
+import avatartranslator.AvatarSignal;
+import avatartranslator.AvatarSpecification;
+import avatartranslator.AvatarStartState;
+import avatartranslator.AvatarState;
+import avatartranslator.AvatarStateMachine;
+import avatartranslator.AvatarStateMachineElement;
+import avatartranslator.AvatarStopState;
+import avatartranslator.AvatarTerm;
+import avatartranslator.AvatarTermFunction;
+import avatartranslator.AvatarTermRaw;
+import avatartranslator.AvatarTransition;
+import avatartranslator.AvatarTuple;
+import avatartranslator.AvatarType;
+import common.SpecConfigTTool;
+import myutil.Conversion;
+import myutil.FileException;
+import myutil.FileUtils;
+import myutil.Plugin;
+import myutil.TraceManager;
+
 /**
  * Class AVATAR2CPOSIX
  * Creation: 29/03/2011
@@ -63,7 +90,7 @@ public class AVATAR2CPOSIX {
 
     private final static String UNUSED_ATTR = "__attribute__((unused))";
     private final static String GENERATED_PATH = "generated_src" + File.separator;
-    private final static String UNKNOWN = "UNKNOWN";
+    //private final static String UNKNOWN = "UNKNOWN";
     private final static String CR = "\n";
 
     private AvatarSpecification avspec;
@@ -305,8 +332,8 @@ public class AVATAR2CPOSIX {
 
     private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFile _taskFile) {
         String ret = "";
-        LinkedList<AvatarAttribute> list;
-        LinkedList<AvatarAttribute> listA;
+        List<AvatarAttribute> list;
+        List<AvatarAttribute> listA;
 
         String nameMethod = _block.getName() + "__" + _am.getName();
 
@@ -503,8 +530,7 @@ public class AVATAR2CPOSIX {
     }
 
     public String makeBehaviourFromElement(AvatarBlock _block, AvatarStateMachineElement _asme, boolean firstCall) {
-        AvatarStateMachineElement asme0;
-
+        //AvatarStateMachineElement asme0;
 
         if (_asme == null) {
             return "";
@@ -536,7 +562,7 @@ public class AVATAR2CPOSIX {
                 ret += "waitFor(" + reworkDelay(at.getMinDelay()) + ", " + reworkDelay(at.getMaxDelay()) + ");" + CR;
             }
 
-            String act;
+            //String act;
             ret += makeActionsOfTransaction(_block, at);
             /*for(i=0; i<at.getNbOfAction(); i++) {
             // Must know whether this is an action or a method call
@@ -649,7 +675,7 @@ public class AVATAR2CPOSIX {
             AvatarActionOnSignal aaos = (AvatarActionOnSignal) _asme;
             ret += makeSignalAction(aaos, 0, false, "", "");
             AvatarSignal as = aaos.getSignal();
-            AvatarRelation ar = avspec.getAvatarRelationWithSignal(as);
+            //AvatarRelation ar = avspec.getAvatarRelationWithSignal(as);
             ret += executeOneRequest("__req0");
             ret += traceRequest();
         }
diff --git a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
index 932a74073f476b904837c299c1bcb87c231b266c..a6f3ba1905b04256836ae85d99aa63fbb09074bb 100755
--- a/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
+++ b/src/main/java/avatartranslator/toproverif/AVATAR2ProVerif.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator.toproverif;
 
 import avatartranslator.*;
@@ -62,6 +59,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Class AVATAR2ProVerif
@@ -228,7 +226,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         return result;
     }
 
-    protected static String translateTerm (AvatarTerm term, HashMap<AvatarAttribute, Integer> attributeCmp) {
+    protected static String translateTerm (AvatarTerm term, Map<AvatarAttribute, Integer> attributeCmp) {
         if (term instanceof AvatarAttribute) {
             AvatarAttribute attr = (AvatarAttribute) term;
             if (attributeCmp != null) {
@@ -341,7 +339,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
     // Supported guards: a == b, not(a == b), g1 and g2, g1 or g2
     // -> transformed into a = b, a <> b, g1 && g2, g1 || g2
     // Returns nulls otherwise
-    private static String translateGuard (AvatarGuard _guard, HashMap<AvatarAttribute, Integer> attributeCmp) {
+    private static String translateGuard (AvatarGuard _guard, Map<AvatarAttribute, Integer> attributeCmp) {
         TraceManager.addDev(_guard.toString());
         if (_guard == null || _guard instanceof AvatarGuardEmpty)
             return null;
@@ -501,7 +499,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         List<AvatarBlock> blocks = this.avspec.getListOfBlocks();
       //  String action = "(";
         for(AvatarBlock block: blocks) {
-            HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
+            Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
             if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null)
                 simplifiedElements.put (block.getStateMachine ().getStartState (), new Integer (0));
 
@@ -734,7 +732,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         lastInstr = lastInstr.setNextInstr (paral);
 
         for(AvatarBlock block: blocks) {
-            HashMap<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
+            Map<AvatarStateMachineElement, Integer> simplifiedElements = block.getStateMachine ().getSimplifiedElements ();
 
             if (simplifiedElements.get (block.getStateMachine ().getStartState ()) == null)
                 paral.addInstr (new ProVerifProcCall (block.getName () + ATTR_DELIM + "0", new ProVerifVar[] {new ProVerifVar ("sessionID", "bitstring")}));
@@ -944,7 +942,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
         lastInstr = lastInstr.setNextInstr (new ProVerifProcRaw (tmp + ")))"));
 
         // Generate a new process for every simplified element of the block's state machine
-        HashMap<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements ();
+        Map<AvatarStateMachineElement, Integer> simplifiedElements = ab.getStateMachine ().getSimplifiedElements ();
         if (simplifiedElements.get (ab.getStateMachine ().getStartState ()) == null)
             simplifiedElements.put (ab.getStateMachine ().getStartState (), new Integer (0));
 
@@ -993,8 +991,8 @@ public class AVATAR2ProVerif implements AvatarTranslator {
     class ProVerifTranslatorParameter {
         AvatarBlock block;
         ProVerifProcInstr lastInstr;
-        HashMap<AvatarStateMachineElement, Integer> simplifiedElements;
-        HashMap<AvatarAttribute, Integer> attributeCmp;
+        Map<AvatarStateMachineElement, Integer> simplifiedElements;
+        Map<AvatarAttribute, Integer> attributeCmp;
         AvatarStateMachineElement lastASME;
     }
 
@@ -1200,7 +1198,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
                 if (rightHand instanceof AvatarTermFunction) {
                     // If it's a function call
                     String name = ((AvatarTermFunction) rightHand).getMethod ().getName ();
-                    LinkedList<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents ();
+                    List<AvatarTerm> args = ((AvatarTermFunction) rightHand).getArgs ().getComponents ();
 
                     if (name.equals ("concat2") || name.equals ("concat3") || name.equals ("concat4")) {
                         // If it's a concat function, just use tuples
@@ -1279,7 +1277,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
 
                 if (name.equals ("get2") || name.equals ("get3") || name.equals ("get4")) {
                     // If the function called is get[234]
-                    LinkedList<AvatarTerm> args = action.getArgs ().getComponents ();
+                    List<AvatarTerm> args = action.getArgs ().getComponents ();
                     int index = (int) name.charAt (3) - 48;
 
                     boolean ok = true;
@@ -1393,7 +1391,7 @@ public class AVATAR2ProVerif implements AvatarTranslator {
             }
             _lastInstr = _lastInstr.setNextInstr (new ProVerifProcIn (CH_MAINCH, new ProVerifVar[] {new ProVerifVar ("choice" + ATTR_DELIM + _asme.getName (), "bitstring")}));
 
-            HashMap<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp;
+            Map<AvatarAttribute, Integer> attributeCmp = arg.attributeCmp;
             for (int i=0; i<nbOfNexts-1; i++) {
                 String choice = "choice" + ATTR_DELIM + _asme.getName () + ATTR_DELIM + i;
                 ProVerifProcITE ite = new ProVerifProcITE ("choice" + ATTR_DELIM + _asme.getName () + " = " + choice);
diff --git a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java
index c7da1aa5f675c38a8990891252105be5add4b7b2..2f30039703dcc8b81e3913a9f04a0b001229a26b 100755
--- a/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java
+++ b/src/main/java/avatartranslator/touppaal/AVATAR2UPPAAL.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package avatartranslator.touppaal;
 
 import avatartranslator.*;
@@ -53,10 +50,12 @@ import uppaaldesc.UPPAALSpec;
 import uppaaldesc.UPPAALTemplate;
 import uppaaldesc.UPPAALTransition;
 
-import java.awt.*;
+import java.awt.Point;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Class AVATAR2UPPAAL
@@ -74,20 +73,20 @@ public class AVATAR2UPPAAL {
     private UPPAALSpec spec;
     private AvatarSpecification avspec;
 
-    private LinkedList<CheckingError> warnings;
+    private List<CheckingError> warnings;
 
     private int currentX, currentY;
 
-    private java.util.List<String> gatesNotSynchronized; // String
-    private java.util.List<String> gatesSynchronized;
-    private java.util.List<AvatarRelation> gatesSynchronizedRelations;
-    private java.util.List<String> gatesAsynchronized;
-    private java.util.List<String> unoptStates;
+    private List<String> gatesNotSynchronized; // String
+    private List<String> gatesSynchronized;
+    private List<AvatarRelation> gatesSynchronizedRelations;
+    private List<String> gatesAsynchronized;
+    private List<String> unoptStates;
     private int nbOfIntParameters, nbOfBooleanParameters;
 
-    private Hashtable <AvatarStateMachineElement, UPPAALLocation> hash;
-    private Hashtable <AvatarStateMachineElement, UPPAALLocation> hashChecking;
-    private Hashtable <String, String> translateString;
+    private Map<AvatarStateMachineElement, UPPAALLocation> hash;
+    private Map<AvatarStateMachineElement, UPPAALLocation> hashChecking;
+    private Map<String, String> translateString;
     public final static int STEP_X = 5;
     public final static int STEP_Y = 70;
     public final static int STEP_LOOP_X = 150;
@@ -150,22 +149,22 @@ public class AVATAR2UPPAAL {
         //
     }
 
-
-    public LinkedList<CheckingError> getWarnings() {
+    public List<CheckingError> getWarnings() {
         return warnings;
     }
 
     /*public RelationTIFUPPAAL getRelationTIFUPPAAL () {
       return table;
       }*/
-    public Hashtable <String, String> getHash(){
-	return translateString;
+    public Map<String, String> getHash(){
+    	return translateString;
     }
+    
     public UPPAALSpec generateUPPAAL(boolean _debug, boolean _optimize) {
         warnings = new LinkedList<CheckingError>();
         hash = new Hashtable<AvatarStateMachineElement, UPPAALLocation>();
         hashChecking = new Hashtable<AvatarStateMachineElement, UPPAALLocation>();
-	translateString = new Hashtable<String, String>();
+        translateString = new Hashtable<String, String>();
         spec = new UPPAALSpec();
 
         avspec.removeCompositeStates();
@@ -173,16 +172,17 @@ public class AVATAR2UPPAAL {
         avspec.removeTimers();
 	//avspec.removeFIFOs(2);
         avspec.makeRobustness();
-	java.util.List<String> uppaalPragmas = avspec.getSafetyPragmas();
-	unoptStates= new LinkedList<String>();
-	for (String s: uppaalPragmas){
-	    String[] split = s.split("[^a-zA-Z0-9\\.]");
-	    for (String t:split){
-		if (t.contains(".")){
-		    unoptStates.add(t);
-		}
-	    }
-	}
+        List<String> uppaalPragmas = avspec.getSafetyPragmas();
+        unoptStates= new LinkedList<String>();
+        
+        for (String s: uppaalPragmas){
+        	String[] split = s.split("[^a-zA-Z0-9\\.]");
+        	for (String t:split){
+        		if (t.contains(".")){
+        			unoptStates.add(t);
+        		}
+        	}
+        }
 
         //TraceManager.addDev("->   Spec:" + avspec.toString());
 
@@ -582,7 +582,7 @@ public class AVATAR2UPPAAL {
                 TraceManager.addDev("************************* NULL PREVIOUS !!!!!!!*****************");
             }
             //TraceManager.addDev("Linking myself = " + _elt + " to " + loc);
-            UPPAALLocation locc = hashChecking.get(_elt);
+            //UPPAALLocation locc = hashChecking.get(_elt);
             if (_elt != null) {
                 //TraceManager.addDev("In hash:" + _elt + " in location:" + locc);
             }
@@ -1059,7 +1059,7 @@ public class AVATAR2UPPAAL {
         //TraceManager.addDev("Method name:" + mc);
 
         setSynchronization(_tr, mc);
-        LinkedList<AvatarTerm> arguments = action.getArgs ().getComponents ();
+        List<AvatarTerm> arguments = action.getArgs ().getComponents ();
         for(AvatarTerm arg: arguments) {
             if (!(arg instanceof AvatarAttribute))
                 continue;
diff --git a/src/main/java/compiler/tmlparser/SimpleNode.java b/src/main/java/compiler/tmlparser/SimpleNode.java
index dbe16a462639bc6ae950a2ca2525fd6fc29b9ffa..13759d2b13e2dcfc1e4e7621b395202ae4215dfa 100755
--- a/src/main/java/compiler/tmlparser/SimpleNode.java
+++ b/src/main/java/compiler/tmlparser/SimpleNode.java
@@ -36,21 +36,13 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
-
 package compiler.tmlparser;
 
-
-
-
-
-
  /* Has been partially generated by: JJTree */
 /* Generated By:JJTree: Do not edit this line. SimpleNode.java */
 
 import java.util.ArrayList;
+import java.util.List;
 
 
 /**
@@ -88,6 +80,7 @@ public class SimpleNode implements Node {
 	}
 	
 	public void jjtSetParent(Node n) { parent = n; }
+	
 	public Node jjtGetParent() { return parent; }
 	
 	public void jjtAddChild(Node n, int i) {
@@ -116,6 +109,7 @@ public class SimpleNode implements Node {
 	you need to do. */
 	
 	//public String toString() { return TMLExprParserTreeConstants.jjtNodeName[id]; }
+	@Override
 	public String toString() { 
 		return TMLExprParserTreeConstants.jjtNodeName[id] + "/" + kind + "/" + value;
 	}
@@ -136,13 +130,13 @@ public class SimpleNode implements Node {
 		}
 	}
 	
-	public ArrayList<String> getVariables() {
-		ArrayList<String> list = new ArrayList<String>();
+	public List<String> getVariables() {
+		List<String> list = new ArrayList<String>();
 		getVariables(list);
 		return list;
 	}
 	
-	public void getVariables(ArrayList<String> list) {
+	public void getVariables( List<String> list) {
 		String s;
 		
 		s = TMLExprParserTreeConstants.jjtNodeName[id];
diff --git a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java
index 3ef5b9b2ea6885d86bd90121714adef4bad1b78e..d1a5a5c5ee0e18f9ac6664d4bd3f29facffd7a24 100755
--- a/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java
+++ b/src/main/java/ddtranslatorSoclib/toSoclib/TasksAndMainGenerator.java
@@ -36,14 +36,31 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ddtranslatorSoclib.toSoclib;
 
-import avatartranslator.*;
-import ddtranslatorSoclib.AvatarRAM;
+import java.io.File;
+import java.util.List;
+import java.util.Vector;
+
+import avatartranslator.AvatarAction;
+import avatartranslator.AvatarActionAssignment;
+import avatartranslator.AvatarActionOnSignal;
+import avatartranslator.AvatarAttribute;
+import avatartranslator.AvatarBlock;
+import avatartranslator.AvatarMethod;
+import avatartranslator.AvatarRandom;
+import avatartranslator.AvatarRelation;
+import avatartranslator.AvatarSignal;
+import avatartranslator.AvatarSpecification;
+import avatartranslator.AvatarStartState;
+import avatartranslator.AvatarState;
+import avatartranslator.AvatarStateMachine;
+import avatartranslator.AvatarStateMachineElement;
+import avatartranslator.AvatarStopState;
+import avatartranslator.AvatarTransition;
+import avatartranslator.AvatarType;
 import ddtranslatorSoclib.AvatarCoproMWMR;
+import ddtranslatorSoclib.AvatarRAM;
 import ddtranslatorSoclib.AvatarTask;
 import ddtranslatorSoclib.AvatarddSpecification;
 import ddtranslatorSoclib.toTopCell.TopCellGenerator;
@@ -52,11 +69,6 @@ import myutil.FileException;
 import myutil.FileUtils;
 import myutil.TraceManager;
 
-import java.io.File;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Vector;
-
 /**
  * Class AVATAR2CSOCLIB
  * Creation: 01/07/2014
@@ -114,8 +126,7 @@ public class TasksAndMainGenerator {
     }
 
     public void saveInFiles(String path) throws FileException {
-
-	System.err.println("ok");
+    	System.err.println("ok");
         TraceManager.addDev("Generating files");
 
         if (mainFile != null) {
@@ -125,8 +136,8 @@ public class TasksAndMainGenerator {
         }
 
         for(TaskFileSoclib taskFile: taskFiles) {
-	    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2));
-	    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2));
+		    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".h", Conversion.indentString(taskFile.getFullHeaderCode/*Soclib*/(), 2));
+		    FileUtils.saveFile(path + GENERATED_PATH + taskFile.getName() + ".c", Conversion.indentString(taskFile.getMainCode(), 2));
         }
 
         // Standard Makefile
@@ -164,11 +175,11 @@ public class TasksAndMainGenerator {
 
         makeMainMutex();
 
-	makeSynchronousChannels();
+        makeSynchronousChannels();
 
         makeAsynchronousChannels();  
 
-	makeThreadsInMain(debug);
+        makeThreadsInMain(debug);
     }
 
     public void makeMainMutex() {
@@ -185,17 +196,17 @@ public class TasksAndMainGenerator {
 
     	//for(AvatarRelation ar: avspec.getRelations()) {
     	for (AvatarRAM ram : TopCellGenerator.avatardd.getAllRAM()) { 
-    		
-	    for(AvatarRelation ar: avspec.getRelations()) {
-
-       		for(int i=0; i<ar.nbOfSignals() ; i++) {
-		   
-    			mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); 	
-    			mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel
-    			d++;		      			
-		    }
-		    }
-	}
+
+    		for(AvatarRelation ar: avspec.getRelations()) {
+
+    			for(int i=0; i<ar.nbOfSignals() ; i++) {
+
+    				mainFile.appendToBeforeMainCode("#define CHANNEL"+d+" __attribute__((section(\"section_channel"+d+"\")))" + CR ); 	
+    				mainFile.appendToBeforeMainCode("#define LOCK"+d+" __attribute__((section(\"section_lock"+d+"\")))" + CR );//one lock per channel
+    				d++;		      			
+    			}
+    		}
+    	}
     	mainFile.appendToBeforeMainCode("#define base(arg) arg" + CR2 );
     	mainFile.appendToBeforeMainCode("typedef struct mwmr_s mwmr_t;" + CR2);
 
@@ -204,143 +215,142 @@ public class TasksAndMainGenerator {
     	mainFile.appendToMainCode("pthread_attr_t *attr_t = malloc(sizeof(pthread_attr_t));" +CR);
     	mainFile.appendToMainCode("pthread_attr_init(attr_t);" + CR );
     	mainFile.appendToMainCode("pthread_mutex_init(&__mainMutex, NULL);" +CR2);       
-	mainFile.appendToMainCode("int sizeParams;" +CR2);   //DG 13.06.
+    	mainFile.appendToMainCode("int sizeParams;" +CR2);   //DG 13.06.
     }
   
     public void makeSynchronousChannels() {
-	int i=0;   int j=0;  
+    	int i=0;   //int j=0;  
         // Create synchronous channel signals
         mainFile.appendToHCode("/* Synchronous channels */" + CR);
         mainFile.appendToBeforeMainCode("/* Synchronous channels */" + CR);
         mainFile.appendToMainCode("/* Synchronous channels */" + CR);
- k=0;
+        k=0;
         for(AvatarRelation ar: avspec.getRelations()) {
-	  
-	if (!ar.isAsynchronous()) {
-	   
-	   		    
-	    for(i=0; i<ar.nbOfSignals() ; i++) {
-		ar.setId(i);
 
-		mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR);
+        	if (!ar.isAsynchronous()) {
 
-		mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR);
+        		for(i=0; i<ar.nbOfSignals() ; i++) {
+        			ar.setId(i);
 
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
-		mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
-	
+        			mainFile.appendToHCode("extern syncchannel __" + getChannelName(ar, i) + ";" + CR);
 
-	AvatarSignal sig = ar.getSignal1(i);
-        int nbParams= sig.getNbParams();
-	
-	int sizeParams = 0;
-		
-	if (nbParams>0)
-	    mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);
-	
-	else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR);
-	
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2);
+        			mainFile.appendToBeforeMainCode("syncchannel __" +getChannelName(ar, i) + ";" + CR);
 
-	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
-	mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);		
-	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
-	
-	if(sig.isIn()){
-	    mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR);
-	}
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
 
-	if(sig.isOut()){
-	    mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR);
-	}
 
-	/* init because mutekh initializer does not work for this */		
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
+        			AvatarSignal sig = ar.getSignal1(i);
+        			int nbParams= sig.getNbParams();
 
-	mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
-	mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR);
-				     		
-	mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
-	mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 		
-	       
-	mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);
-		
-	mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);
-	k++;			
-	
-	}
-	}
-	}
-    }
+        			//int sizeParams = 0;
 
-    public void makeAsynchronousChannels() {
-	if (avspec.ASynchronousExist()){
-	    // Create an asynchronous channel per relation/signal
-	    mainFile.appendToHCode("/* Asynchronous channels */" + CR);
-	    mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR);
-	    mainFile.appendToMainCode("/* Asynchronous channels */" + CR);
-            int j=0;
-	    for(AvatarRelation ar: avspec.getRelations()) {
-	
-		if (ar.isAsynchronous()) {
-		    for(int i=0; i<ar.nbOfSignals() ; i++) {
+        			if (nbParams>0)
+        				mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);
 
-			ar.setId(i);
-			mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR);
+        			else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = 100;" + CR);
 
-			mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR);
-		
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = " +getChannelName(ar, i)+".depth;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR2);
 
-		
-			AvatarSignal sig = ar.getSignal1(i);
-			int nbParams= sig.getNbParams();			
-		
-			if (nbParams>0)
-			    mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);			    
-			else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
-
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); 
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR);
-
-			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
-			mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);
-			if (ar.isBlocking()) {
-			    mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR);
-			} else {
-			    mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR);
-			}
-			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR);
-			
-			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
-				
-			/* force init because mutekh initializer does not work her */		
-			mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
-			mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR);	    	    	
-			mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
-			mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 			       
-			mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);		
-			mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);	 
-			k++;
-		    }
-		}
-	    }
-	}
+        			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
+        			mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);		
+        			mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
+
+        			if(sig.isIn()){
+        				mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 0;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 1;" + CR);
+        			}
+
+        			if(sig.isOut()){
+        				mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_send = 1;" + CR);	mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".ok_receive = 0;" + CR);
+        			}
+
+        			/* init because mutekh initializer does not work for this */		
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
+
+        			mainFile.appendToMainCode(getChannelName(ar, i)+".status->lock=0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
+        			mainFile.appendToMainCode(getChannelName(ar, i) + ".status->wptr =0;" + CR);
+
+        			mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
+        			mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 		
+
+        			mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);
+
+        			mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);
+        			k++;			
+
+        		}
+        	}
+        }
+    }
+
+    public void makeAsynchronousChannels() {
+    	if (avspec.ASynchronousExist()){
+    		// Create an asynchronous channel per relation/signal
+    		mainFile.appendToHCode("/* Asynchronous channels */" + CR);
+    		mainFile.appendToBeforeMainCode("/* Asynchronous channels */" + CR);
+    		mainFile.appendToMainCode("/* Asynchronous channels */" + CR);
+    		//int j=0;
+    		for(AvatarRelation ar: avspec.getRelations()) {
+
+    			if (ar.isAsynchronous()) {
+    				for(int i=0; i<ar.nbOfSignals() ; i++) {
+
+    					ar.setId(i);
+    					mainFile.appendToHCode("extern asyncchannel __" + getChannelName(ar, i) + ";" + CR);
+
+    					mainFile.appendToBeforeMainCode("asyncchannel __" +getChannelName(ar, i) + ";" + CR);
+
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.rptr = 0;" + CR);		
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.wptr = 0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.usage = 0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + "_status.lock = 0;" + CR2);
+
+
+    					AvatarSignal sig = ar.getSignal1(i);
+    					int nbParams= sig.getNbParams();			
+
+    					if (nbParams>0)
+    						mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ (nbParams*4)+";" + CR);			    
+    					else mainFile.appendToMainCode(getChannelName(ar, i) + ".width = "+ 4 +";" + CR);
+
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".depth = "+ ar.getSizeOfFIFO()+";" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".gdepth = "+getChannelName(ar, i)+".depth;" + CR); 
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".buffer = "+getChannelName(ar, i)+"_data;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".status = &"+getChannelName(ar, i)+"_status;" + CR);
+
+    					mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".inname =\"" + ar.getInSignal(i).getName() + "\";" + CR);
+    					mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".outname =\"" + ar.getOutSignal(i).getName() + "\";" + CR);
+    					if (ar.isBlocking()) {
+    						mainFile.appendToMainCode("__" +getChannelName(ar, i) + ".isBlocking = 1;" + CR);
+    					} else {
+    						mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".isBlocking = 0;" + CR);
+    					}
+    					mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".maxNbOfMessages = " + ar.getSizeOfFIFO() + ";" + CR);
+
+    					mainFile.appendToMainCode("__" + getChannelName(ar, i) + ".mwmr_fifo = &" + getChannelName(ar, i) + ";" + CR);
+
+    					/* force init because mutekh initializer does not work her */		
+    					mainFile.appendToMainCode(getChannelName(ar, i) + ".status =&"+ getChannelName(ar, i)+"_status;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i) +".status->lock=0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i)+".status->rptr=0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i)+".status->usage=0;" + CR);
+    					mainFile.appendToMainCode(getChannelName(ar, i)+".status->wptr=0;" + CR);	    	    	
+    					mainFile.appendToBeforeMainCode("uint32_t const "+ getChannelName(ar, i)+"_lock LOCK"+k+";" + CR); 
+    					mainFile.appendToBeforeMainCode("struct mwmr_status_s "+ getChannelName(ar, i) +"_status CHANNEL"+k+";" + CR); 			       
+    					mainFile.appendToBeforeMainCode("uint8_t "+getChannelName(ar, i) +"_data[32] CHANNEL"+k+";" + CR);		
+    					mainFile.appendToBeforeMainCode("struct mwmr_s "+getChannelName(ar, i) +" CHANNEL"+k+";" + CR2);	 
+    					k++;
+    				}
+    			}
+    		}
+    	}
     }
  
     //DG 19.09. need this for main program generation
@@ -356,7 +366,7 @@ public class TasksAndMainGenerator {
     	return -1;
 	}*/
    
-    public int FindCPUidFromTask(AvatarBlock block){
+    public int findCPUidFromTask(AvatarBlock block){
     	List<AvatarTask> tasks = avddspec.getAllMappedTask();
 	
     	for (AvatarTask task : tasks){
@@ -370,41 +380,40 @@ public class TasksAndMainGenerator {
 
     /* DG 7.7. give CPUid of outer block to block created e.g. for a timer */
     public void makeTasks() {
-        for(AvatarBlock block: avspec.getListOfBlocks()) {
-	    if (FindCPUidFromTask(block)!=-1) 
-	      makeTask(block,FindCPUidFromTask(block));
-	    else {
-		//AvatarBlock father = block.getFather();
-		//if(father!=null){ //DG bug: donne null pointer
-		//makeTask(block,FindCPUidFromTask(father));
-		makeTask(block,0);
-	
-		
-		}
-	    //DG 19.09. found coproc do not make task
-	   
-	    }
-        }
+    	for(AvatarBlock block: avspec.getListOfBlocks()) {
+    		if (findCPUidFromTask(block)!=-1) 
+    			makeTask(block,findCPUidFromTask(block));
+    		else {
+    			//AvatarBlock father = block.getFather();
+    			//if(father!=null){ //DG bug: donne null pointer
+    			//makeTask(block,FindCPUidFromTask(father));
+    			makeTask(block,0);
+
 
+    		}
+    		//DG 19.09. found coproc do not make task
+
+    	}
+    }
 
     public void makeTask(AvatarBlock block , int cpuId) {
-	TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId);
-        
-        if (includeUserCode) {
-            String tmp = block.getGlobalCode();
-            if (tmp != null) {
-                taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR);
-            }
-        }
-        defineAllSignal(block,taskFile);
+    	TaskFileSoclib taskFile = new TaskFileSoclib(block.getName(),cpuId);
+
+    	if (includeUserCode) {
+    		String tmp = block.getGlobalCode();
+    		if (tmp != null) {
+    			taskFile.addToMainCode(CR + "// Header code defined in the model" + CR + tmp + CR + "// End of header code defined in the model" + CR + CR);
+    		}
+    	}
+    	defineAllSignal(block,taskFile);
 
-        defineAllStates(block, taskFile);
+    	defineAllStates(block, taskFile);
 
-        defineAllMethods(block, taskFile);
+    	defineAllMethods(block, taskFile);
 
-        makeMainFunction(block, taskFile);
+    	makeMainFunction(block, taskFile);
 
-        taskFiles.add(taskFile);
+    	taskFiles.add(taskFile);
     }
 
     // ---------------------------------------------------------
@@ -457,8 +466,8 @@ public class TasksAndMainGenerator {
 
     private void makeMethod(AvatarBlock _block, AvatarMethod _am, Vector<String> _allNames, TaskFileSoclib _taskFile) {
         String ret = "";
-        LinkedList<AvatarAttribute> list;
-        LinkedList<AvatarAttribute> listA;
+        List<AvatarAttribute> list;
+        List<AvatarAttribute> listA;
 
         String nameMethod = _block.getName() + "__" +_am.getName();
 
diff --git a/src/main/java/proverifspec/ProVerifResultTrace.java b/src/main/java/proverifspec/ProVerifResultTrace.java
index 65d43fcb0fa9480003e7963b9ba60be696bdda0e..80cc8c1284f605d2463bd2f0192d0c275ba21910 100644
--- a/src/main/java/proverifspec/ProVerifResultTrace.java
+++ b/src/main/java/proverifspec/ProVerifResultTrace.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package proverifspec;
 
 import avatartranslator.toproverif.AVATAR2ProVerif;
@@ -51,6 +48,8 @@ import java.io.BufferedWriter;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 import java.util.Stack;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -66,10 +65,10 @@ public class ProVerifResultTrace {
     private static Pattern blockNamePattern;
     private static Pattern attrPattern;
 
-    private LinkedList<ProVerifResultTraceStep> trace;
+    private List<ProVerifResultTraceStep> trace;
     private StringBuilder buffer;
-    private LinkedList<String> proverifProcess;
-    private HashMap<String, Integer> attackerNamesMap;
+    private List<String> proverifProcess;
+    private Map<String, Integer> attackerNamesMap;
 
 
     static
@@ -192,7 +191,7 @@ public class ProVerifResultTrace {
         }
     }
 
-    public ProVerifResultTrace(LinkedList<String> proverifProcess)
+    public ProVerifResultTrace(List<String> proverifProcess)
     {
         this.proverifProcess = proverifProcess;
         this.trace = new LinkedList<ProVerifResultTraceStep> ();
@@ -200,7 +199,7 @@ public class ProVerifResultTrace {
         this.buffer = null;
     }
 
-    public LinkedList<ProVerifResultTraceStep> getTrace()
+    public List<ProVerifResultTraceStep> getTrace()
     {
         return this.trace;
     }
@@ -272,7 +271,7 @@ public class ProVerifResultTrace {
                     else
                     {
                         // TODO: is it possible that subtype is itself composed ?
-                        LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther());
+                        List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(attr.getTypeOther());
                         if (types.size() > 1)
                             attrPart = attrName[0] + "." + attrName[1];
                         else
diff --git a/src/main/java/tmltranslator/TMLActivity.java b/src/main/java/tmltranslator/TMLActivity.java
index e1fa1378e72668a0417a43339089d70b198d473d..f131566e7ef1c6b2867dec730eb5097fa2c07558 100755
--- a/src/main/java/tmltranslator/TMLActivity.java
+++ b/src/main/java/tmltranslator/TMLActivity.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package tmltranslator;
 
 import myutil.Conversion;
@@ -46,7 +43,6 @@ import myutil.TraceManager;
 
 import java.util.Vector;
 
-
 /**
    * Class TMLActivity
    * Creation: 23/11/2005
@@ -571,13 +567,13 @@ public class TMLActivity extends TMLElement {
     }
 
     public String toXML() {
-	String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n");
-	for(TMLActivityElement elt: elements) {
-	    s += elt.toXML(elements);
-	}
-	s += "</ACTIVITY>\n";
-	return s;
+    	String s = new String("<ACTIVITY first=\"" + elements.indexOf(first) + "\">\n");
+    	
+    	for(TMLActivityElement elt: elements) {
+    		s += elt.toXML(elements);
+    	}
+    	s += "</ACTIVITY>\n";
+    	
+    	return s;
     }
-
-    
 }
diff --git a/src/main/java/tmltranslator/TMLCP.java b/src/main/java/tmltranslator/TMLCP.java
index fc2f87bd8749668a79411490550f44d7d00de29b..f4510692a2f40d1a3cbcbbdbaf10ac3300e8a0d7 100755
--- a/src/main/java/tmltranslator/TMLCP.java
+++ b/src/main/java/tmltranslator/TMLCP.java
@@ -37,7 +37,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package tmltranslator;
 
 import myutil.TraceManager;
@@ -329,15 +328,16 @@ public class TMLCP extends TMLElement {
         }
     }
 
-    public void splitADs() {
-
-        ArrayList<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>();
-        all.addAll(mainCP.splitADs());
-        for (TMLCPActivityDiagram diag : otherCPs) {
-            all.addAll(diag.splitADs());
-        }
-        otherCPs.addAll(all);
-    }
+    // Issue #69; Unused TMLCPJunction
+//    public void splitADs() {
+//
+//        List<TMLCPActivityDiagram> all = new ArrayList<TMLCPActivityDiagram>();
+//        all.addAll(mainCP.splitADs());
+//        for (TMLCPActivityDiagram diag : otherCPs) {
+//            all.addAll(diag.splitADs());
+//        }
+//        otherCPs.addAll(all);
+//    }
 
     public TMLCPElement getNonConnectedElement() {
         TMLCPElement elt;
@@ -378,10 +378,10 @@ public class TMLCP extends TMLElement {
 
         List<TMLCPActivityDiagram> CPlist = new ArrayList<TMLCPActivityDiagram>();
         List<TMLCPSequenceDiagram> SDlist = new ArrayList<TMLCPSequenceDiagram>();
-        List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>();
+      //  List<TMLAttribute> listAttributes = new ArrayList<TMLAttribute>();
         TMLCPActivityDiagram tempCP;
         TMLCPSequenceDiagram tempSD;
-        TMLAttribute attr;
+    //    TMLAttribute attr;
         int i, j, k;
 
         TraceManager.addDev("The data structure contains " + getNumSections() + " CP sections (AD) and " +
@@ -450,22 +450,22 @@ public class TMLCP extends TMLElement {
             TraceManager.addDev("Sequence Diagram n. " + (i+1) + ": " + tempSD.getName() + "\n");
 
             //Print Variables
-            listAttributes = tempSD.getAttributes();
+            //listAttributes = tempSD.getAttributes();
             //TraceManager.addDevf("\tAttributes:\n");
-            for (j = 0; j < listAttributes.size(); j++) {
-                attr = listAttributes.get(j);
+           // for (j = 0; j < listAttributes.size(); j++) {
+             //   attr = listAttributes.get(j);
                 //TraceManager.addDev("\t\t %s\t%s\t%s\n", attr.getName(), attr.getType(), attr.getInitialValue());
-            }
+            //}
 
             //Print Instances
-            List<TMLSDInstance> listInstances;
-            TMLSDInstance inst;
-            listInstances = tempSD.getInstances();
-            TraceManager.addDev("\tInstances:");
-            for (j = 0; j < listInstances.size(); j++) {
-                inst = listInstances.get(j);
+            //List<TMLSDInstance> listInstances;
+            //TMLSDInstance inst;
+            //listInstances = tempSD.getInstances();
+            //TraceManager.addDev("\tInstances:");
+           // for (j = 0; j < listInstances.size(); j++) {
+             //   inst = listInstances.get(j);
                 //TraceManager.addDev("\t\t" + inst.getName() + "\n");
-            }
+            //}
 
             //Print Messages
             List<TMLSDMessage> listMessages;
diff --git a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java
index ef21bc989f8f434470c23d51e90c0ca8a9f4b9ee..acf7e2bc222c2c996cba9912fe0ea57cf0f107f3 100755
--- a/src/main/java/tmltranslator/TMLCPSyntaxChecking.java
+++ b/src/main/java/tmltranslator/TMLCPSyntaxChecking.java
@@ -586,11 +586,11 @@ public class TMLCPSyntaxChecking {
         }
 
         // Tree analysis: if the tree contains a variable, then, this variable has not been declared
-        ArrayList<String> vars = root.getVariables();
+        List<String> vars = root.getVariables();
 
         //Do not raise a syntax error when variables appear in actions
-        ArrayList<String> boolAttrNamesList = new ArrayList<String>();    //a list of the boolean attribute names
-        ArrayList<String> natAttrNamesList = new ArrayList<String>();    //a list of the natural attribute names
+        List<String> boolAttrNamesList = new ArrayList<String>();    //a list of the boolean attribute names
+        List<String> natAttrNamesList = new ArrayList<String>();    //a list of the natural attribute names
         for (TMLAttribute attr : attributes) {
             if (attr.isNat()) {
                 natAttrNamesList.add(attr.getName());
diff --git a/src/main/java/tmltranslator/TMLChoice.java b/src/main/java/tmltranslator/TMLChoice.java
index b4c8703865807b0c15385f209a79455a1975a234..9a2f7aa31caeb755effb7fcc1dc08faf3de9560e 100755
--- a/src/main/java/tmltranslator/TMLChoice.java
+++ b/src/main/java/tmltranslator/TMLChoice.java
@@ -36,14 +36,12 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package tmltranslator;
 
 import myutil.Conversion;
 
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Class TMLChoice
@@ -52,7 +50,7 @@ import java.util.ArrayList;
  * @author Ludovic APVRILLE
  */
 public class TMLChoice extends TMLActivityElement{
-    private ArrayList<String> guards;
+    private List<String> guards;
 
     public TMLChoice(String _name, Object _referenceObject) {
         super(_name, _referenceObject);
@@ -331,13 +329,11 @@ public class TMLChoice extends TMLActivityElement{
         }
     }
 
-    
     public String customExtraToXML() {
-	String g = "";
-	for(String s: guards) {
-	    g += s + ";";
-	}
-	return " guards=\"" + g + "\" ";
+    	String g = "";
+    	for(String s: guards) {
+    		g += s + ";";
+    	}
+    	return " guards=\"" + g + "\" ";
     }
-
 }
diff --git a/src/main/java/tmltranslator/TMLSyntaxChecking.java b/src/main/java/tmltranslator/TMLSyntaxChecking.java
index c1beb52121a7413ec1daadc682ab8b080d06a21e..0fe1dfd17a0dfd29a5bd8d9575657590219ba9e1 100755
--- a/src/main/java/tmltranslator/TMLSyntaxChecking.java
+++ b/src/main/java/tmltranslator/TMLSyntaxChecking.java
@@ -50,6 +50,7 @@ import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 
 
 /**
@@ -608,7 +609,7 @@ public class TMLSyntaxChecking {
         }
 
         // Tree analysis: if the tree contains a variable, then, this variable has not been declared
-        ArrayList<String> vars = root.getVariables();
+        List<String> vars = root.getVariables();
         for (String s : vars) {
             addError(t, elt, UNDECLARED_VARIABLE + " :" + s + " in expression " + action, TMLError.ERROR_BEHAVIOR);
         }
diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java
index 7cdd59a3c08fb1ae8184191861b4a61705474339..4076aa65b88407bf149640dd1c9a4459c874c1e8 100755
--- a/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java
+++ b/src/main/java/tmltranslator/tmlcp/TMLCPActivityDiagram.java
@@ -37,9 +37,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package tmltranslator.tmlcp;
 
 import tmltranslator.TMLCP;
@@ -314,118 +311,119 @@ public class TMLCPActivityDiagram  extends TMLElement {
         }
     }
 
+    // Issue #69; Unused TMLCPJunction
     // The splitting works only if there is no other operations than sequences and references to ADs/SDs
     // between forks and joins
     // The function removes junctions, and creates one new AD per junction
-    public Collection<TMLCPActivityDiagram> splitADs() {
-        int id = 0;
-        TMLCPActivityDiagram diag;
-
-        //TraceManager.addDev("Splitting AD: " + getName());
-
-        // For each junction, we create a new AD
-        ArrayList<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>();
-        ArrayList<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>();
-        ArrayList<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>();
-        HashMap<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>();
-        for(TMLCPElement elt: elements)  {
-            if (elt instanceof TMLCPJunction) {
-                junctions.add((TMLCPJunction)elt);
-                diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject);
-                TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject());
-                diag.setStartElement(start);
-                diag.addTMLCPElement(start);
-                refs.put((TMLCPJunction)elt, diag);
-                //TraceManager.addDev("Adding a new diag named: " + diag.getName());
-            }
-        }
-
-        // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts
-        for(TMLCPJunction junction: junctions) {
-            TMLCPActivityDiagram toAD = refs.get(junction);
-            //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
-            //refsAD.add(ref);
-            elements.remove(junction);
-            //elements.add(ref);
-
-            // Replacing next to junction by new refs
-            int index;
-           // int ID = 0;
-            for(TMLCPElement elt: elements) {
-                while(((index = elt.getNextElements().indexOf(junction)) != -1)) {
-                    //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject());
-                    //ID ++;
-		    TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
-                    //ID ++;
-		    refsAD.add(ref);
-                    //elements.add(ref);
-                    elt.setNextElementAtIndex(ref, index);
-		    /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject());
-		    elements.add(stop);
-		    ref.addNextElement(stop);*/
-                }
-                //ref.setNexts(junction.getNextElements());
-            }
-        }
-
-	// Removing nexts in new refs, and putting a stop
-        for(TMLCPRefAD ref: refsAD) {
-          ref.clearNexts();
-	  elements.add(ref);
-          TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject());
-          elements.add(stop);
-          ref.addNextElement(stop);
-         }
-
-        // Moving elements from old AD to split ADs
-        //int cpt = 0;
-        for(TMLCPJunction junction: junctions) {
-            diag = refs.get(junction);
-            //TMLCPRefAD refAD = refsAD.get(cpt);
-            //cpt++;
-
-            // To be modified-> add elements from RefADs
-            // Also, avoid to add already met elements
-            addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved);
-        }
-
-        // Removing elements from main diagram
-        for(TMLCPElement elt: toBeRemoved) {
-            elements.remove(elt);
-        }
-
-        
-
-        // Returns new elements
-        return refs.values();
-    }
-
-    private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) {
-        if (originInOld.getNextElements() == null) {
-            return;
-        }
-
-        for(TMLCPElement elt: originInOld.getNextElements()) {
-            //TraceManager.addDev("Exploring elt (0):" + elt.getName());
-            if (elt instanceof TMLCPJunction) {
-                // Must replace the junction by a ref to an AD
-                TMLCPActivityDiagram toAD = refs.get(elt);
-                TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject());
-                newDiag.addTMLCPElement(ref);
-                originInNew.setNextElement(ref);
-            } else {
-                //TraceManager.addDev("Exploring elt (1):" + elt.getName());
-                if (originInOld != originInNew) {
-                    originInNew.addNextElement(elt);
-                }
-                if (!newDiag.contains(elt)) {
-                    newDiag.addTMLCPElement(elt);
-                    toBeRemoved.add(elt);
-                    addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved);
-                }
-            }
-        }
-    }
+//    private Collection<TMLCPActivityDiagram> splitADs() {
+//        int id = 0;
+//        TMLCPActivityDiagram diag;
+//
+//        //TraceManager.addDev("Splitting AD: " + getName());
+//
+//        // For each junction, we create a new AD
+////        List<TMLCPJunction> junctions = new ArrayList<TMLCPJunction>();
+//        List<TMLCPRefAD> refsAD = new ArrayList<TMLCPRefAD>();
+//        List<TMLCPElement> toBeRemoved = new ArrayList<TMLCPElement>();
+////        Map<TMLCPJunction, TMLCPActivityDiagram> refs = new HashMap<TMLCPJunction, TMLCPActivityDiagram>();
+//        for(TMLCPElement elt: elements)  {
+//            if (elt instanceof TMLCPJunction) {
+//                junctions.add((TMLCPJunction)elt);
+//                diag = new TMLCPActivityDiagram(elt.getName() + "_" + id, referenceObject);
+//                TMLCPStart start = new TMLCPStart("StartFrom_" + elt.getName(), elt.getReferenceObject());
+//                diag.setStartElement(start);
+//                diag.addTMLCPElement(start);
+//                refs.put((TMLCPJunction)elt, diag);
+//                //TraceManager.addDev("Adding a new diag named: " + diag.getName());
+//            }
+//        }
+//
+//        // We replace all elements leading to a junction by a call to the corresponding ref AD, keeping the same nexts
+//        for(TMLCPJunction junction: junctions) {
+//            TMLCPActivityDiagram toAD = refs.get(junction);
+//            //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
+//            //refsAD.add(ref);
+//            elements.remove(junction);
+//            //elements.add(ref);
+//
+//            // Replacing next to junction by new refs
+//            int index;
+//           // int ID = 0;
+//            for(TMLCPElement elt: elements) {
+//                while(((index = elt.getNextElements().indexOf(junction)) != -1)) {
+//                    //TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName() + "_" + ID, junction.getReferenceObject());
+//                    //ID ++;
+//                	TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), junction.getReferenceObject());
+//                    //ID ++;
+//                	refsAD.add(ref);
+//                    //elements.add(ref);
+//                    elt.setNextElementAtIndex(ref, index);
+//		    /*TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref_" + ID, ref.getReferenceObject());
+//		    elements.add(stop);
+//		    ref.addNextElement(stop);*/
+//                }
+//                //ref.setNexts(junction.getNextElements());
+//            }
+//        }
+//
+//	// Removing nexts in new refs, and putting a stop
+//        for(TMLCPRefAD ref: refsAD) {
+//        	ref.clearNexts();
+//        	elements.add(ref);
+//        	TMLCPStop stop = new TMLCPStop(ref.getName() + "__stop_after_ref", ref.getReferenceObject());
+//        	elements.add(stop);
+//        	ref.addNextElement(stop);
+//        }
+//
+//        // Moving elements from old AD to split ADs
+//        //int cpt = 0;
+//        for(TMLCPJunction junction: junctions) {
+//            diag = refs.get(junction);
+//            //TMLCPRefAD refAD = refsAD.get(cpt);
+//            //cpt++;
+//
+//            // To be modified-> add elements from RefADs
+//            // Also, avoid to add already met elements
+//            addElementsFromJunction(junction, diag.getStartElement(), diag, refs, toBeRemoved);
+//        }
+//
+//        // Removing elements from main diagram
+//        for(TMLCPElement elt: toBeRemoved) {
+//            elements.remove(elt);
+//        }
+//
+//        
+//
+//        // Returns new elements
+//        return refs.values();
+//    }
+
+//    private void addElementsFromJunction(TMLCPElement originInOld, TMLCPElement originInNew, TMLCPActivityDiagram newDiag, Map<TMLCPJunction, TMLCPActivityDiagram> refs, List<TMLCPElement> toBeRemoved) {
+//        if (originInOld.getNextElements() == null) {
+//            return;
+//        }
+//
+//        for(TMLCPElement elt: originInOld.getNextElements()) {
+//            //TraceManager.addDev("Exploring elt (0):" + elt.getName());
+//            if (elt instanceof TMLCPJunction) {
+//                // Must replace the junction by a ref to an AD
+//                TMLCPActivityDiagram toAD = refs.get(elt);
+//                TMLCPRefAD ref = new TMLCPRefAD(toAD, toAD.getName(), elt.getReferenceObject());
+//                newDiag.addTMLCPElement(ref);
+//                originInNew.setNextElement(ref);
+//            } else {
+//                //TraceManager.addDev("Exploring elt (1):" + elt.getName());
+//                if (originInOld != originInNew) {
+//                    originInNew.addNextElement(elt);
+//                }
+//                if (!newDiag.contains(elt)) {
+//                    newDiag.addTMLCPElement(elt);
+//                    toBeRemoved.add(elt);
+//                    addElementsFromJunction(elt, elt, newDiag, refs, toBeRemoved);
+//                }
+//            }
+//        }
+//    }
 
 
     public TMLCPElement getNonConnectedElement() {
@@ -509,6 +507,7 @@ public class TMLCPActivityDiagram  extends TMLElement {
 		}
     }
 
+    @Override
     public String toString() {
         String s = "*** Activity diagram " + getName() + "\n";
         for(TMLCPElement elt: elements) {
@@ -516,5 +515,4 @@ public class TMLCPActivityDiagram  extends TMLElement {
         }
         return s + "\n";
     }
-
 }       //End of class
diff --git a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java b/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java
deleted file mode 100755
index c0ac565fef1b0776f7e1ae37fd10fcc5f66c2971..0000000000000000000000000000000000000000
--- a/src/main/java/tmltranslator/tmlcp/TMLCPJunction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
- * 
- * ludovic.apvrille AT enst.fr
- * 
- * This software is a computer program whose purpose is to allow the
- * edition of TURTLE analysis, design and deployment diagrams, to
- * allow the generation of RT-LOTOS or Java code from this diagram,
- * and at last to allow the analysis of formal validation traces
- * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
- * from INRIA Rhone-Alpes.
- * 
- * This software is governed by the CeCILL  license under French law and
- * abiding by the rules of distribution of free software.  You can  use,
- * modify and/ or redistribute the software under the terms of the CeCILL
- * license as circulated by CEA, CNRS and INRIA at the following URL
- * "http://www.cecill.info".
- * 
- * As a counterpart to the access to the source code and  rights to copy,
- * modify and redistribute granted by the license, users are provided only
- * with a limited warranty  and the software's author,  the holder of the
- * economic rights,  and the successive licensors  have only  limited
- * liability.
- * 
- * In this respect, the user's attention is drawn to the risks associated
- * with loading,  using,  modifying and/or developing or reproducing the
- * software by the user in light of its specific status of free software,
- * that may mean  that it is complicated to manipulate,  and  that  also
- * therefore means  that it is reserved for developers  and  experienced
- * professionals having in-depth computer knowledge. Users are therefore
- * encouraged to load and test the software's suitability as regards their
- * requirements in conditions enabling the security of their systems and/or
- * data to be ensured and,  more generally, to use and operate it in the
- * same conditions as regards security.
- * 
- * The fact that you are presently reading this means that you have had
- * knowledge of the CeCILL license and that you accept its terms.
- */
-
-
-
-
-package tmltranslator.tmlcp;
-
-/**
-* Class TMLCPJunction
-* Creation: 18/02/2014
-* @version 1.0 18/02/2014
-* @author Ludovic APVRILLE
- */
-public class TMLCPJunction extends TMLCPElement  {
-
-    public TMLCPJunction(String _name, Object _referenceObject) {
-        super(_name, _referenceObject);
-    }
-	
-}
diff --git a/src/main/java/ui/ActionPerformer.java b/src/main/java/ui/ActionPerformer.java
index 824db9d610d07990df7f5ee2423baaf1a8efadc6..70b56c9ce829ebde681012ea12b47bec3ba1794f 100644
--- a/src/main/java/ui/ActionPerformer.java
+++ b/src/main/java/ui/ActionPerformer.java
@@ -895,8 +895,9 @@ public class ActionPerformer {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_START_STATE);
         } else if (command.equals(mgui.actions[TGUIAction.TMLCP_STOP].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_STOP_STATE);
-        } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) {
-            mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION);
+        // Issue #69 Removed unused TMLCPJunction
+//        } else if (command.equals(mgui.actions[TGUIAction.TMLCP_JUNCTION].getActionCommand())) {
+//            mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_JUNCTION);
         } else if (command.equals(mgui.actions[TGUIAction.TMLCP_FOR_LOOP].getActionCommand())) {
             mgui.actionOnButton(TGComponentManager.COMPONENT, TGComponentManager.TMLCP_FOR_LOOP);
         } else if (command.equals(mgui.actions[TGUIAction.TMLSD_EDIT].getActionCommand())) {
diff --git a/src/main/java/ui/AttackTreePanelTranslator.java b/src/main/java/ui/AttackTreePanelTranslator.java
index cd1642f8946d72be448665c9879ba65fb6954f3c..b9de2310ee2af9a333011d8bf884fac95ede78e2 100644
--- a/src/main/java/ui/AttackTreePanelTranslator.java
+++ b/src/main/java/ui/AttackTreePanelTranslator.java
@@ -57,10 +57,10 @@ public class AttackTreePanelTranslator {
 
     protected AttackTree at;
     protected AttackTreePanel atp;
-    protected LinkedList<CheckingError> checkingErrors, warnings;
+    protected List<CheckingError> checkingErrors, warnings;
     protected CorrespondanceTGElement listE; // usual list
     //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
-    protected LinkedList<TDiagramPanel> panels;
+    protected List<TDiagramPanel> panels;
 
 
     public AttackTreePanelTranslator(AttackTreePanel _atp) {
@@ -75,11 +75,11 @@ public class AttackTreePanelTranslator {
         panels = new LinkedList<TDiagramPanel>();
     }
 
-    public LinkedList<CheckingError> getCheckingErrors() {
+    public List<CheckingError> getCheckingErrors() {
         return checkingErrors;
     }
 
-    public LinkedList<CheckingError> getWarnings() {
+    public List<CheckingError> getWarnings() {
         return warnings;
     }
 
diff --git a/src/main/java/ui/AvatarDesignPanel.java b/src/main/java/ui/AvatarDesignPanel.java
index 0b3194ef27d7efe7c20a4d37d372227b87a2b6b8..96febefa9e04545b9707a56a23c3c4ab41737cfb 100644
--- a/src/main/java/ui/AvatarDesignPanel.java
+++ b/src/main/java/ui/AvatarDesignPanel.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import avatartranslator.AvatarAttribute;
@@ -65,8 +62,12 @@ import javax.swing.*;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import java.awt.*;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
+import java.util.Vector;
 
 /**
    * Class AvatarDesignPanel
@@ -77,8 +78,8 @@ import java.util.List;
    * @see MainGUI
  */
 public class AvatarDesignPanel extends TURTLEPanel {
-    public AvatarBDPanel abdp;
-
+    
+	public AvatarBDPanel abdp;
 
     public AvatarDesignPanel(MainGUI _mgui) {
         super(_mgui);
@@ -103,13 +104,13 @@ public class AvatarDesignPanel extends TURTLEPanel {
     }
 
 
-    public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) {
+    public void setValidated( List<AvatarBDStateMachineOwner> _validated) {
         if (abdp != null) {
             abdp.setValidated(_validated);
         }
     }
 
-    public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) {
+    public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) {
         if (abdp != null) {
             abdp.setIgnored(_ignored);
         }
@@ -121,14 +122,14 @@ public class AvatarDesignPanel extends TURTLEPanel {
         }
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getValidated() {
+    public List<AvatarBDStateMachineOwner> getValidated() {
         if (abdp != null) {
             return abdp.getValidated();
         }
         return null;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getIgnored() {
+    public List<AvatarBDStateMachineOwner> getIgnored() {
         if (abdp != null) {
             return abdp.getIgnored();
         }
@@ -179,6 +180,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
         return;
     }
 
+    @Override
     public void init() {
 
         //  Class Diagram toolbar
@@ -209,37 +211,41 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) {
+    public List<AvatarBDLibraryFunction> getAllLibraryFunctions(String _name) {
         return abdp.getAllLibraryFunctionsForBlock (_name);
     }
 
-    public LinkedList<TAttribute> getAllAttributes(String _name) {
+    public List<TAttribute> getAllAttributes(String _name) {
         return abdp.getAllAttributesOfBlock(_name);
     }
 
-    public LinkedList<AvatarMethod> getAllMethods(String _name) {
+    public List<AvatarMethod> getAllMethods(String _name) {
         return abdp.getAllMethodsOfBlock(_name);
     }
 
-    public LinkedList<AvatarSignal> getAllSignals(String _name) {
+    public List<AvatarSignal> getAllSignals(String _name) {
         return abdp.getAllSignalsOfBlock(_name);
     }
 
-    public LinkedList<String> getAllTimers(String _name) {
+    public List<String> getAllTimers(String _name) {
         return abdp.getAllTimersOfBlock(_name);
     }
     
+    @Override
     public String saveHeaderInXml(String extensionToName) {
-	if (extensionToName == null) {
-	    return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n";
-	}
-	return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n";
+		if (extensionToName == null) {
+		    return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + "\" >\n";
+		}
+
+		return "<Modeling type=\"AVATAR Design\" nameTab=\"" + mgui.getTabName(this) + extensionToName + "\" >\n";
     }
 
+    @Override
     public String saveTailInXml() {
         return "</Modeling>\n\n\n";
     }
 
+    @Override
     public String toString() {
         return mgui.getTitleAt(this) + " (Design)";
     }
@@ -260,13 +266,11 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     }
 
-
-
-    public LinkedList<TGComponent> getListOfComponentsInMutex() {
+    public List<TGComponent> getListOfComponentsInMutex() {
         TGComponent tgc;
         TDiagramPanel tdp;
 
-        LinkedList<TGComponent> list = new LinkedList<TGComponent>();
+        List<TGComponent> list = new LinkedList<TGComponent>();
 
         for(int i=0; i<panels.size(); i++) {
             tdp = panels.get(i);
@@ -337,8 +341,8 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
     }
 
-    public LinkedList<String> getPropertyPragmas() {
-        LinkedList<String> result = new LinkedList<String> ();
+    public List<String> getPropertyPragmas() {
+        List<String> result = new LinkedList<String> ();
         for (Object tgc: abdp.getComponentList()) {
             if (tgc instanceof AvatarBDPragma) {
                 result.addAll(((AvatarBDPragma) tgc).getProperties());
@@ -348,8 +352,8 @@ public class AvatarDesignPanel extends TURTLEPanel {
         return result;
     }
 
-    public LinkedList<String> getModelPragmas() {
-        LinkedList<String> result = new LinkedList<String> ();
+    public List<String> getModelPragmas() {
+        List<String> result = new LinkedList<String> ();
         for (Object tgc: abdp.getComponentList()) {
             if (tgc instanceof AvatarBDPragma) {
                 result.addAll(((AvatarBDPragma) tgc).getModels());
@@ -359,7 +363,6 @@ public class AvatarDesignPanel extends TURTLEPanel {
         return result;
     }
 
-
     public void resetModelBacktracingProVerif() {
         if (abdp == null) {
             return;
@@ -445,7 +448,6 @@ public class AvatarDesignPanel extends TURTLEPanel {
 		}
 	}
 
-
     public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) {
 
         if (abdp == null) {
@@ -456,8 +458,8 @@ public class AvatarDesignPanel extends TURTLEPanel {
 
         // Confidential attributes
         Map<AvatarPragmaSecret, ProVerifQueryResult> confResults = pvoa.getConfidentialityResults();
-        HashMap<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
-        HashMap<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
+        Map<AvatarAttribute, AvatarPragma> secretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
+        Map<AvatarAttribute, AvatarPragma> nonSecretAttributes = new HashMap<AvatarAttribute, AvatarPragma> ();
         for (AvatarPragmaSecret pragma: confResults.keySet())
         {
             ProVerifQueryResult result = confResults.get(pragma);
@@ -473,7 +475,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
         for (AvatarBDBlock bdBlock: abdp.getFullBlockList ())
             for (TAttribute tattr: bdBlock.getAttributeList ()) {
                 if (tattr.getType () == TAttribute.OTHER) {
-                    LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ());
+                    List<TAttribute> types = abdp.getAttributesOfDataType (tattr.getTypeOther ());
                     int toBeFound = types.size ();
                     boolean ko = false;
                     for (TAttribute type: types) {
@@ -584,7 +586,7 @@ public class AvatarDesignPanel extends TURTLEPanel {
                             if (! tattrA.getTypeOther ().equals (tattrB.getTypeOther ()))
                                 continue;
 
-                            LinkedList<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ());
+                            List<TAttribute> types = abdp.getAttributesOfDataType (tattrA.getTypeOther ());
                             int toBeFound = types.size ();
                             boolean ko = false;
                             boolean weakKo = false;
@@ -711,13 +713,11 @@ public class AvatarDesignPanel extends TURTLEPanel {
             }
     }
 
-    public ArrayList<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
+    public List<String> getAllNonMappedAvatarBlockNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
         return abdp.getAllNonMappedAvatarBlockNames(_name, _tadp, ref, name);
     }
 
-    public ArrayList<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
+    public List<String> getAllNonMappedAvatarChannelNames(String _name, ADDDiagramPanel _tadp, boolean ref, String name) {
         return abdp.getAllNonMappedAvatarChannelNames(_name, _tadp);
     }
-
-
 }
diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java
index 879587c3372fcb9e6726c0163b6ff01acb23fd55..e440a89501499f03326d02efec5160cee35ee901 100644
--- a/src/main/java/ui/AvatarDesignPanelTranslator.java
+++ b/src/main/java/ui/AvatarDesignPanelTranslator.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import avatartranslator.*;
@@ -57,24 +54,24 @@ import java.util.*;
  */
 public class AvatarDesignPanelTranslator {
 
-    protected AvatarDesignPanel adp;
-    protected List<CheckingError> checkingErrors, warnings;
-    protected CorrespondanceTGElement listE; // usual list
+    private final AvatarDesignPanel adp;
+    private final List<CheckingError> checkingErrors, warnings;
+    private final CorrespondanceTGElement listE; // usual list
     //protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
-    protected List <TDiagramPanel> panels;
-    protected Map<String, List<TAttribute>> typeAttributesMap;
-    protected Map<String, String> nameTypeMap;
+    //protected List <TDiagramPanel> panels;
+    private Map<String, List<TAttribute>> typeAttributesMap;
+    private Map<String, String> nameTypeMap;
     
     public AvatarDesignPanelTranslator(AvatarDesignPanel _adp) {
         adp = _adp;
-        reinit();
-    }
+     //   reinit();
+   // }
 
-    public void reinit() {
+    //public void reinit() {
         checkingErrors = new LinkedList<CheckingError> ();
         warnings = new LinkedList<CheckingError> ();
         listE = new CorrespondanceTGElement();
-        panels = new LinkedList <TDiagramPanel>();
+        //panels = new LinkedList <TDiagramPanel>();
     }
 
     public List<CheckingError> getErrors() {
@@ -130,19 +127,21 @@ public class AvatarDesignPanelTranslator {
     public class ErrorAccumulator extends avatartranslator.ErrorAccumulator {
         private TGComponent tgc;
         private TDiagramPanel tdp;
-        private AvatarBlock ab;
+       // private AvatarBlock ab;
 
-        public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) {
-            this.tgc = tgc;
-            this.tdp = tdp;
-            this.ab = ab;
-        }
+//        public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp, AvatarBlock ab) {
+//            this.tgc = tgc;
+//            this.tdp = tdp;
+//            this.ab = ab;
+//        }
 
         public ErrorAccumulator (TGComponent tgc, TDiagramPanel tdp) {
-            this (tgc, tdp, null);
+        	this.tgc = tgc;
+        	this.tdp = tdp;
+//            this (tgc, tdp, null);
         }
 
-        public CheckingError createError (String msg) {
+        public CheckingError createError(String msg) {
             UICheckingError ce = new UICheckingError (CheckingError.BEHAVIOR_ERROR, msg);
             ce.setTGComponent (this.tgc);
             ce.setTDiagramPanel (this.tdp);
@@ -167,7 +166,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
+    private void createPragmas(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
         Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator();
         TGComponent tgc;
         AvatarBDPragma tgcn;
@@ -240,7 +239,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 	
-	public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){	
+    public AvatarPragmaLatency checkPerformancePragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){	
 		if (_pragma.contains("=") || (!_pragma.contains(">") && !_pragma.contains("<") && !_pragma.contains("?")) || !_pragma.contains("Latency(")){
 			UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "No latency expression found in pragma "+ _pragma);
 		   	ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -416,7 +415,8 @@ public class AvatarDesignPanelTranslator {
 
 
 	}
-    public boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){
+	
+	private boolean checkSafetyPragma(String _pragma, List<AvatarBDBlock> _blocks, AvatarSpecification as, TGComponent tgc){
         //Todo: check types
         //Todo: handle complex types
         _pragma = _pragma.trim();
@@ -466,7 +466,8 @@ public class AvatarDesignPanelTranslator {
         }
         return true;
     }
-    public boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){
+    
+    private boolean statementParser(String state, AvatarSpecification as, String _pragma, TGComponent tgc){
         //check the syntax of a single statement
        
 
@@ -659,243 +660,243 @@ public class AvatarDesignPanelTranslator {
         }
         return true;
     }
-    public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) {
-        String ret = "";
-        int i;
-
-        // Identify first keyword
-        _pragma = _pragma.trim();
-
-        int index = _pragma.indexOf(" ");
-
-        if (index == -1) {
-            return null;
-        }
-
-        String header = _pragma.substring(0, index).trim();
-
-        for(i=0; i<AvatarPragma.PRAGMAS.length; i++) {
-            if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) {
-                break;
-            }
-        }
-
-        // Invalid header?
-        if (i == AvatarPragma.PRAGMAS.length) {
-            TraceManager.addDev("Invalid Pragma " + 0);
-            return null;
-        }
-
-
-
-        ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " ";
-
-        // Checking for arguments
-
-
-        boolean b = ret.startsWith("Authenticity ");
-        boolean b1 = ret.startsWith("PrivatePublicKeys ");
-        String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" ");
-        String tmp;
-        String blockName, stateName, paramName = "";
-        boolean found = false;
-        LinkedList<TAttribute> types;
-        AvatarBDBlock block;
-        TAttribute ta;
-     //   AvatarBlock ab;
-        String myBlockName = "";
-
-
-
-
-        for(i=0; i<arguments.length; i++) {
-            tmp = arguments[i];
-            TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp);
-
-            if (b1) {
-
-                // Private Public keys?
-                if (i == 0) {
-                    // Must be a block name
-                    // Look for at least a block
-                    found = false;
-                    for(Object o: _blocks) {
-                        block = (AvatarBDBlock)o;
-                        //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp);
-                        if (block.getBlockName().compareTo(tmp) ==0) {
-                            myBlockName = block.getBlockName();
-                            found = true;
-                            ret = ret + tmp;
-                            break;
-                        }
-                        /*for(Object oo: block.getAttributeList()) {
-                          ta = (TAttribute)oo;
-                          if (ta.getId().compareTo(tmp) == 0) {
-                          found = true;
-
-                          if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                          ret = ret  + tmp + " ";
-                          } else if (ta.getType() == TAttribute.OTHER) {
-                          // Must find all subsequent types
-                          types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                          if (types == null) {
-                          TraceManager.addDev("Invalid Pragma " + 1);
-                          return null;
-
-                          } else {
-                          for(int j=0; j<types.size(); j++) {
-                          ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " ";
-                          }
-                          }
-                          }
-
-                          }
-                          }*/
-                    }
-                    if (found == false) {
-                        TraceManager.addDev("Invalid Pragma " + 2);
-                        return null;
-                    }
-
-                } else if ((i == 1) || (i == 2)) {
-                    // Shall be an attribute
-                    TraceManager.addDev("i= " + i);
-                    for(Object o: _blocks) {
-                        block = (AvatarBDBlock)o;
-                        TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName);
-                        if (block.getBlockName().compareTo(myBlockName) == 0) {
-                            TraceManager.addDev("Found the block " + ret);
-                            for(Object oo: block.getAttributeList()) {
-                                ta = (TAttribute)oo;
-                                TraceManager.addDev("Attribute: " + ta.getId());
-                                if (ta.getId().compareTo(tmp) == 0) {
-                                    paramName = ta.getId();
-                                    found = true;
-                                    TraceManager.addDev("Pragma " + ret + " found=" + found);
-                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                                        ret = ret  + " " + paramName + " ";
-                                    } else if (ta.getType() == TAttribute.OTHER) {
-                                        // Must find all subsequent types
-                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                                        if (types == null) {
-                                            TraceManager.addDev("Invalid Pragma " + 3);
-                                            return null;
-                                        } else {
-                                            TraceManager.addDev("Pragma " + ret + " types size=" + types.size());
-                                            for (TAttribute type: types)
-                                                ret = ret  + " " + paramName + "__" + type.getId() + " ";
-                                        }
-
-                                    } else {
-                                        TraceManager.addDev("Invalid Pragma " + 4);
-                                        return null;
-                                    }
-
-                                    break;
-                                }
-                            }
-                        }
-                    }
-                } else {
-                    // Badly formatted
-                    TraceManager.addDev("Invalid Pragma " + 5);
-                    return null;
-                }
-
-                // Other than PrivatePublicKeys
-            } else {
-                index = tmp.indexOf(".");
-                if (index == -1) {
-                    return null;
-                }
-                blockName = tmp.substring(0, index);
-
-                //TraceManager.addDev("blockName=" + blockName);
-                // Search for the block
-                for(Object o: _blocks) {
-                    block = (AvatarBDBlock)o;
-                    if (block.getBlockName().compareTo(blockName) == 0) {
-
-                        if (b) {
-                            // Authenticity
-                            stateName = tmp.substring(index+1, tmp.length());
-                            //TraceManager.addDev("stateName=" + stateName);
-                            index = stateName.indexOf(".");
-                            if (index == -1) {
-                                return null;
-                            }
-                            paramName = stateName.substring(index+1, stateName.length());
-                            stateName = stateName.substring(0, index);
-
-                            for(Object oo: block.getAttributeList()) {
-                                ta = (TAttribute)oo;
-                                if (ta.getId().compareTo(paramName) == 0) {
-                                    found = true;
-
-                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                                        ret = ret + blockName + "." + stateName + "." + paramName + " ";
-                                    } else if (ta.getType() == TAttribute.OTHER) {
-                                        // Must find all subsequent types
-                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                                        if (types == null) {
-                                            return null;
-                                        } else {
-                                            for (TAttribute type: types)
-                                                ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " ";
-                                        }
-
-                                    } else {
-                                        return null;
-                                    }
-
-                                    break;
-                                }
-                            }
-
-                        } else {
-                            // Other: confidentiality, initial system knowledge, initial session knowledge, constant
-
-                            paramName = tmp.substring(index+1, tmp.length());
-                            for(Object oo: block.getAttributeList()) {
-                                ta = (TAttribute)oo;
-                                if (ta.getId().compareTo(paramName) == 0) {
-                                    found = true;
-
-                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
-                                        ret = ret + blockName + "." + paramName + " ";
-                                    } else if (ta.getType() == TAttribute.OTHER) {
-                                        // Must find all subsequent types
-                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
-                                        if (types == null) {
-                                            return null;
-                                        } else {
-                                            for (TAttribute type: types)
-                                                ret = ret + blockName + "." + paramName + "__" + type.getId() + " ";
-                                        }
-
-                                    } else {
-                                        return null;
-                                    }
-
-                                    break;
-                                }
-                            }
-
-                        }
-                    }
-                }
-            }
-
-            if (!found) {
-                return null;
-            }
-
-        }
-
-        TraceManager.addDev("Reworked pragma: " + ret);
-
-        return ret.trim();
-    }
+//    public String reworkPragma(String _pragma, LinkedList<AvatarBDBlock> _blocks) {
+//        String ret = "";
+//        int i;
+//
+//        // Identify first keyword
+//        _pragma = _pragma.trim();
+//
+//        int index = _pragma.indexOf(" ");
+//
+//        if (index == -1) {
+//            return null;
+//        }
+//
+//        String header = _pragma.substring(0, index).trim();
+//
+//        for(i=0; i<AvatarPragma.PRAGMAS.length; i++) {
+//            if (header.compareTo(AvatarPragma.PRAGMAS[i]) == 0) {
+//                break;
+//            }
+//        }
+//
+//        // Invalid header?
+//        if (i == AvatarPragma.PRAGMAS.length) {
+//            TraceManager.addDev("Invalid Pragma " + 0);
+//            return null;
+//        }
+//
+//
+//
+//        ret = AvatarPragma.PRAGMAS_TRANSLATION[i] + " ";
+//
+//        // Checking for arguments
+//
+//
+//        boolean b = ret.startsWith("Authenticity ");
+//        boolean b1 = ret.startsWith("PrivatePublicKeys ");
+//        String arguments [] = _pragma.substring(index+1, _pragma.length()).trim().split(" ");
+//        String tmp;
+//        String blockName, stateName, paramName = "";
+//        boolean found = false;
+//        LinkedList<TAttribute> types;
+//        AvatarBDBlock block;
+//        TAttribute ta;
+//     //   AvatarBlock ab;
+//        String myBlockName = "";
+//
+//
+//
+//
+//        for(i=0; i<arguments.length; i++) {
+//            tmp = arguments[i];
+//            TraceManager.addDev("arguments #=" + arguments.length + " pragma=" + _pragma + " tmp=" + tmp);
+//
+//            if (b1) {
+//
+//                // Private Public keys?
+//                if (i == 0) {
+//                    // Must be a block name
+//                    // Look for at least a block
+//                    found = false;
+//                    for(Object o: _blocks) {
+//                        block = (AvatarBDBlock)o;
+//                        //TraceManager.addDev("Comparing " + block.getBlockName() + " with " + tmp);
+//                        if (block.getBlockName().compareTo(tmp) ==0) {
+//                            myBlockName = block.getBlockName();
+//                            found = true;
+//                            ret = ret + tmp;
+//                            break;
+//                        }
+//                        /*for(Object oo: block.getAttributeList()) {
+//                          ta = (TAttribute)oo;
+//                          if (ta.getId().compareTo(tmp) == 0) {
+//                          found = true;
+//
+//                          if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                          ret = ret  + tmp + " ";
+//                          } else if (ta.getType() == TAttribute.OTHER) {
+//                          // Must find all subsequent types
+//                          types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                          if (types == null) {
+//                          TraceManager.addDev("Invalid Pragma " + 1);
+//                          return null;
+//
+//                          } else {
+//                          for(int j=0; j<types.size(); j++) {
+//                          ret = ret + tmp + "__" + ((TAttribute)(types.elementAt(j))).getId() + " ";
+//                          }
+//                          }
+//                          }
+//
+//                          }
+//                          }*/
+//                    }
+//                    if (found == false) {
+//                        TraceManager.addDev("Invalid Pragma " + 2);
+//                        return null;
+//                    }
+//
+//                } else if ((i == 1) || (i == 2)) {
+//                    // Shall be an attribute
+//                    TraceManager.addDev("i= " + i);
+//                    for(Object o: _blocks) {
+//                        block = (AvatarBDBlock)o;
+//                        TraceManager.addDev("block= " + block.getBlockName() + " my block name=" + myBlockName);
+//                        if (block.getBlockName().compareTo(myBlockName) == 0) {
+//                            TraceManager.addDev("Found the block " + ret);
+//                            for(Object oo: block.getAttributeList()) {
+//                                ta = (TAttribute)oo;
+//                                TraceManager.addDev("Attribute: " + ta.getId());
+//                                if (ta.getId().compareTo(tmp) == 0) {
+//                                    paramName = ta.getId();
+//                                    found = true;
+//                                    TraceManager.addDev("Pragma " + ret + " found=" + found);
+//                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                                        ret = ret  + " " + paramName + " ";
+//                                    } else if (ta.getType() == TAttribute.OTHER) {
+//                                        // Must find all subsequent types
+//                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                                        if (types == null) {
+//                                            TraceManager.addDev("Invalid Pragma " + 3);
+//                                            return null;
+//                                        } else {
+//                                            TraceManager.addDev("Pragma " + ret + " types size=" + types.size());
+//                                            for (TAttribute type: types)
+//                                                ret = ret  + " " + paramName + "__" + type.getId() + " ";
+//                                        }
+//
+//                                    } else {
+//                                        TraceManager.addDev("Invalid Pragma " + 4);
+//                                        return null;
+//                                    }
+//
+//                                    break;
+//                                }
+//                            }
+//                        }
+//                    }
+//                } else {
+//                    // Badly formatted
+//                    TraceManager.addDev("Invalid Pragma " + 5);
+//                    return null;
+//                }
+//
+//                // Other than PrivatePublicKeys
+//            } else {
+//                index = tmp.indexOf(".");
+//                if (index == -1) {
+//                    return null;
+//                }
+//                blockName = tmp.substring(0, index);
+//
+//                //TraceManager.addDev("blockName=" + blockName);
+//                // Search for the block
+//                for(Object o: _blocks) {
+//                    block = (AvatarBDBlock)o;
+//                    if (block.getBlockName().compareTo(blockName) == 0) {
+//
+//                        if (b) {
+//                            // Authenticity
+//                            stateName = tmp.substring(index+1, tmp.length());
+//                            //TraceManager.addDev("stateName=" + stateName);
+//                            index = stateName.indexOf(".");
+//                            if (index == -1) {
+//                                return null;
+//                            }
+//                            paramName = stateName.substring(index+1, stateName.length());
+//                            stateName = stateName.substring(0, index);
+//
+//                            for(Object oo: block.getAttributeList()) {
+//                                ta = (TAttribute)oo;
+//                                if (ta.getId().compareTo(paramName) == 0) {
+//                                    found = true;
+//
+//                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                                        ret = ret + blockName + "." + stateName + "." + paramName + " ";
+//                                    } else if (ta.getType() == TAttribute.OTHER) {
+//                                        // Must find all subsequent types
+//                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                                        if (types == null) {
+//                                            return null;
+//                                        } else {
+//                                            for (TAttribute type: types)
+//                                                ret = ret + blockName + "." + stateName + "." + paramName + "__" + type.getId() + " ";
+//                                        }
+//
+//                                    } else {
+//                                        return null;
+//                                    }
+//
+//                                    break;
+//                                }
+//                            }
+//
+//                        } else {
+//                            // Other: confidentiality, initial system knowledge, initial session knowledge, constant
+//
+//                            paramName = tmp.substring(index+1, tmp.length());
+//                            for(Object oo: block.getAttributeList()) {
+//                                ta = (TAttribute)oo;
+//                                if (ta.getId().compareTo(paramName) == 0) {
+//                                    found = true;
+//
+//                                    if ((ta.getType() == TAttribute.NATURAL) || (ta.getType() == TAttribute.INTEGER) || (ta.getType() == TAttribute.BOOLEAN)) {
+//                                        ret = ret + blockName + "." + paramName + " ";
+//                                    } else if (ta.getType() == TAttribute.OTHER) {
+//                                        // Must find all subsequent types
+//                                        types = adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther());
+//                                        if (types == null) {
+//                                            return null;
+//                                        } else {
+//                                            for (TAttribute type: types)
+//                                                ret = ret + blockName + "." + paramName + "__" + type.getId() + " ";
+//                                        }
+//
+//                                    } else {
+//                                        return null;
+//                                    }
+//
+//                                    break;
+//                                }
+//                            }
+//
+//                        }
+//                    }
+//                }
+//            }
+//
+//            if (!found) {
+//                return null;
+//            }
+//
+//        }
+//
+//        TraceManager.addDev("Reworked pragma: " + ret);
+//
+//        return ret.trim();
+//    }
 
     private AvatarAttribute createRegularAttribute (AvatarStateMachineOwner _ab, TAttribute _a, String _preName) {
         AvatarType type = AvatarType.UNDEFINED;
@@ -914,11 +915,11 @@ public class AvatarDesignPanelTranslator {
         return aa;
     }
 
-    public void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) {
+    private void addRegularAttribute(AvatarBlock _ab, TAttribute _a, String _preName) {
         _ab.addAttribute(this.createRegularAttribute (_ab, _a, _preName));
     }
 
-    public void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) {
+    private void createLibraryFunctions (AvatarSpecification _as, List<AvatarBDLibraryFunction> _libraryFunctions) {
         for (AvatarBDLibraryFunction libraryFunction: _libraryFunctions) {
             AvatarLibraryFunction alf = new AvatarLibraryFunction (libraryFunction.getFunctionName (), _as, libraryFunction);
             _as.addLibraryFunction (alf);
@@ -934,7 +935,7 @@ public class AvatarDesignPanelTranslator {
                     alf.addParameter (this.createRegularAttribute (alf, attr, ""));
                 else {
                     // other
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + attr.getTypeOther() + " used in " + alf.getName());
                         // TODO: adapt
@@ -964,7 +965,7 @@ public class AvatarDesignPanelTranslator {
                     alf.addReturnAttribute (this.createRegularAttribute (alf, attr, ""));
                 else {
                     // other
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + attr.getTypeOther() + " used in " + alf.getName());
                         ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -993,7 +994,7 @@ public class AvatarDesignPanelTranslator {
                     alf.addAttribute (this.createRegularAttribute (alf, attr, ""));
                 else {
                     // other
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (attr.getTypeOther ());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + attr.getTypeOther() + " used in " + alf.getName());
                         ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -1036,7 +1037,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
+    private void createBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
         for(AvatarBDBlock block: _blocks) {
             AvatarBlock ab = new AvatarBlock(block.getBlockName(), _as, block);
             _as.addBlock(ab);
@@ -1056,7 +1057,7 @@ public class AvatarDesignPanelTranslator {
                 } else {
                     // other
                     // TraceManager.addDev(" -> Other type found: " + a.getTypeOther());
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther());
+                    List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(a.getTypeOther());
                     if (types == null) {
                         UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + a.getTypeOther() + " used in " + ab.getName());
                         ce.setTDiagramPanel(adp.getAvatarBDPanel());
@@ -1117,7 +1118,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void makeBlockStateMachines(AvatarSpecification _as) {
+    private void makeBlockStateMachines(AvatarSpecification _as) {
         // Make state machine of blocks
         for(AvatarBlock block: _as.getListOfBlocks())
             this.makeStateMachine(_as, block);
@@ -1127,7 +1128,7 @@ public class AvatarDesignPanelTranslator {
             this.makeStateMachine (_as, libraryFunction);
     }
 
-    public void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
+    private void makeReturnParameters(AvatarStateMachineOwner _ab, AvatarBDStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
         String rt = _uiam.getReturnType().trim();
         AvatarAttribute aa;
         AvatarType type = AvatarType.UNDEFINED;
@@ -1140,7 +1141,7 @@ public class AvatarDesignPanelTranslator {
             aa = new AvatarAttribute("return__0", AvatarType.getType(rt), _ab, _block);
             _atam.addReturnParameter(aa);
         } else {
-            LinkedList<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt);
+            List<TAttribute> types = adp.getAvatarBDPanel().getAttributesOfDataType(rt);
             if (types == null) {
                 UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + rt + " declared as a return parameter of a method of " + _block.getOwnerName());
                 // TODO: adapt
@@ -1167,12 +1168,12 @@ public class AvatarDesignPanelTranslator {
 
     }
 
-    public void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
+    private void makeParameters(AvatarStateMachineOwner _block, avatartranslator.AvatarMethod _atam, ui.AvatarMethod _uiam) {
         String typeIds[] = _uiam.getTypeIds();
         String types[] = _uiam.getTypes();
 
         for(int i=0; i<types.length; i++) {
-            LinkedList<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]);
+            List<TAttribute> v = adp.getAvatarBDPanel().getAttributesOfDataType(types[i]);
             if (v == null) {
                 if (AvatarType.getType(types[i]) == AvatarType.UNDEFINED) {
                     UICheckingError ce = new UICheckingError(CheckingError.STRUCTURE_ERROR, "Unknown data type:  \"" + types[i] + "\" declared in method " + _atam + " of block " + _block.getName());
@@ -1202,7 +1203,7 @@ public class AvatarDesignPanelTranslator {
         }
     }
 
-    public void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) {
+    private void manageAttribute (String _name, AvatarStateMachineOwner _ab, AvatarActionOnSignal _aaos, TDiagramPanel _tdp, TGComponent _tgc, String _idOperator) {
         TAttribute ta =  adp.getAvatarBDPanel().getAttribute(_name, _ab.getName());
         if (ta == null) {
             UICheckingError ce = new UICheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed parameter: " + _name + " in signal expression: " + _idOperator);
@@ -1217,7 +1218,7 @@ public class AvatarDesignPanelTranslator {
 
         //TraceManager.addDev("Found: " + ta.getId());
 
-        LinkedList<String> v = new LinkedList<String> ();
+        List<String> v = new LinkedList<String> ();
 
         if (ta.getType() == TAttribute.OTHER)
             for (TAttribute tatmp: adp.getAvatarBDPanel().getAttributesOfDataType(ta.getTypeOther()))
@@ -1236,81 +1237,81 @@ public class AvatarDesignPanelTranslator {
                 ce.setTGComponent(_tgc);
                 addCheckingError(ce);
                 return ;
-            } else {
+            }// else {
                 //TraceManager.addDev("-> Adding attr in action on signal in block " + _ab.getName() + ":" + _name + "__" + tatmp.getId());
-                _aaos.addValue(name);
-            }
+            _aaos.addValue(name);
+            //}
         }
     }
 
     private void translateAvatarSMDSendSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDSendSignal asmdss) throws CheckingError {
-        AvatarStateMachine asm = _ab.getStateMachine ();
-        avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ());
-        if (atas == null)
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName());
-
-        // Get relation of that signal
-        if (_ab instanceof AvatarBlock) {
-            // Note that for library functions, signals are just placeholders so they don't need to be connected to anything
-            AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
-            if (ar == null) {
-		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		    //TraceManager.addDev("Send/ Setting as attached " + atas);
-		    ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
-		}
-		//TraceManager.addDev("Spec:" + _as.toString());
-		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel");
-	    }
-	    if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		//TraceManager.addDev("Send/ Setting as attached " + atas);
-		((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
-	    }
-        }
-	
-        AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdss);
-        if (asmdss.hasCheckedAccessibility())
-            aaos.setCheckable();
-
-        if (asmdss.hasCheckedAccessibility())
-            aaos.setChecked();
-
-        if (aaos.isReceiving ())
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue());
-
-        if (asmdss.getNbOfValues() == -1)
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue());
-
-        for(int i=0; i<asmdss.getNbOfValues(); i++) {
-            String tmp = asmdss.getValue(i);
-            if (tmp.isEmpty ())
-                throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue());
-
-            this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue());
-        }
-
-        if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition");
-
-        // Checking expressions passed as parameter
-        for (int i=0; i<aaos.getNbOfValues(); i++) {
-            String theVal = aaos.getValue(i);
-            if (atas.getListOfAttributes ().get (i).isInt ()) {
-                if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
-                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
-            } else {
-                // We assume it is a bool attribute
-                if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
-                    throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
-            }
-        }
-
-        this.listE.addCor (aaos, asmdss);
-        asmdss.setAVATARID (aaos.getID());
-		if (asmdss.getCheckLatency()){
-			aaos.setCheckLatency(true);
-			_as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID());
-		}
-        asm.addElement (aaos);
+    	AvatarStateMachine asm = _ab.getStateMachine ();
+    	avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdss.getSignalName ());
+    	if (atas == null)
+    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdss.getSignalName());
+
+    	// Get relation of that signal
+    	if (_ab instanceof AvatarBlock) {
+    		// Note that for library functions, signals are just placeholders so they don't need to be connected to anything
+    		AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
+    		if (ar == null) {
+    			if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    				//TraceManager.addDev("Send/ Setting as attached " + atas);
+    				((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
+    			}
+    			//TraceManager.addDev("Spec:" + _as.toString());
+    			throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for sending in " + asmdss.getValue() + " is not connected to a channel");
+    		}
+    		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    			//TraceManager.addDev("Send/ Setting as attached " + atas);
+    			((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
+    		}
+    	}
+
+    	AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdss);
+    	if (asmdss.hasCheckedAccessibility())
+    		aaos.setCheckable();
+
+    	if (asmdss.hasCheckedAccessibility())
+    		aaos.setChecked();
+
+    	if (aaos.isReceiving ())
+    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A receiving signal is used for sending: " + asmdss.getValue());
+
+    	if (asmdss.getNbOfValues() == -1)
+    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdss.getValue());
+
+    	for(int i=0; i<asmdss.getNbOfValues(); i++) {
+    		String tmp = asmdss.getValue(i);
+    		if (tmp.isEmpty ())
+    			throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdss.getValue());
+
+    		this.manageAttribute (tmp, _ab, aaos, tdp, asmdss, asmdss.getValue());
+    	}
+
+    	if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
+    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal sending: " + asmdss.getValue() + " -> nb of parameters does not match definition");
+
+    	// Checking expressions passed as parameter
+    	for (int i=0; i<aaos.getNbOfValues(); i++) {
+    		String theVal = aaos.getValue(i);
+    		if (atas.getListOfAttributes ().get (i).isInt ()) {
+    			if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
+    				throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
+    		} else {
+    			// We assume it is a bool attribute
+    			if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
+    				throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdss.getValue() + " -> value at index #" + i + " does not match definition");
+    		}
+    	}
+
+    	this.listE.addCor (aaos, asmdss);
+    	asmdss.setAVATARID (aaos.getID());
+    	if (asmdss.getCheckLatency()){
+    		aaos.setCheckLatency(true);
+    		_as.checkedIDs.add(asmdss.getName()+"-"+ asmdss.getSignalName()+":"+aaos.getID());
+    	}
+    	asm.addElement (aaos);
     }
 
     private void translateAvatarSMDLibraryFunctionCall (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDLibraryFunctionCall asmdlfc) throws CheckingError {
@@ -1330,7 +1331,7 @@ public class AvatarDesignPanelTranslator {
         AvatarLibraryFunctionCall alfc = new AvatarLibraryFunctionCall ("library_function_call", aLibraryFunction, asmdlfc);
 
         /* Get the list of parameters passed to the function */
-        LinkedList<TAttribute> parameters = asmdlfc.getParameters ();
+        List<TAttribute> parameters = asmdlfc.getParameters ();
         /* If the number of parameters does not match raise an error */
         if (parameters.size () != libraryFunction.getParameters ().size ())
             throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getParameters ().size () + "parameters (" + parameters.size () + " provided)");
@@ -1349,14 +1350,14 @@ public class AvatarDesignPanelTranslator {
                 throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of parameter #" + i + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
 
             /* Creates all the parameters corresponding to this parameter */
-            LinkedList<String> parameterNames = new LinkedList<String> ();
+            List<String> parameterNames = new LinkedList<String> ();
             if (ta.getType() == TAttribute.INTEGER
                 || ta.getType() == TAttribute.NATURAL
                 || ta.getType() == TAttribute.BOOLEAN
                 || ta.getType() == TAttribute.TIMER)
                 parameterNames.add (ta.getId ());
             else {
-                LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
+                List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
                 if (types == null || types.isEmpty ())
                     throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
 
@@ -1376,7 +1377,7 @@ public class AvatarDesignPanelTranslator {
         }
 
         /* Get the list of signals mapped to the function's placeholders */
-        LinkedList<ui.AvatarSignal> signals = asmdlfc.getSignals ();
+        List<ui.AvatarSignal> signals = asmdlfc.getSignals ();
         /* If the number of signals does not match raise an error */
         if (signals.size () != libraryFunction.getSignals ().size ())
             throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " requires " + libraryFunction.getSignals ().size () + " signals (" + signals.size () + " mapped)");
@@ -1403,7 +1404,7 @@ public class AvatarDesignPanelTranslator {
         }
 
         /* Get the list of return attributes passed to the function */
-        LinkedList<TAttribute> returnAttributes = asmdlfc.getReturnAttributes ();
+        List<TAttribute> returnAttributes = asmdlfc.getReturnAttributes ();
         /* If the number of return attributes is greater that what the function can return raise an error */
         if (returnAttributes.size () > libraryFunction.getReturnAttributes ().size ())
             throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Calling library function " + libraryFunction.getFunctionName () + " can only return " + libraryFunction.getReturnAttributes ().size () + " values (" + returnAttributes.size () + " expected)");
@@ -1411,7 +1412,7 @@ public class AvatarDesignPanelTranslator {
         /* Loop through the return attributes */
         i=0;
         for (TAttribute ta: returnAttributes) {
-            LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
+            List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
             /* If return attribute has not be filled in, add a dummy one */
             if (ta == null) {
                 TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
@@ -1429,7 +1430,7 @@ public class AvatarDesignPanelTranslator {
                     }
                     attrs.add (attr);
                 } else {
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
                     if (types == null || types.isEmpty ())
                         throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
 
@@ -1450,14 +1451,14 @@ public class AvatarDesignPanelTranslator {
                     throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Type of return attribute #" + (i+1) + " when calling library function " + libraryFunction.getFunctionName () + " does not match");
 
                 /* Creates all the attributes corresponding to this return attribute */
-                LinkedList<String> attributeNames = new LinkedList<String> ();
+                List<String> attributeNames = new LinkedList<String> ();
                 if (ta.getType() == TAttribute.INTEGER
                     || ta.getType() == TAttribute.NATURAL
                     || ta.getType() == TAttribute.BOOLEAN
                     || ta.getType() == TAttribute.TIMER)
                     attributeNames.add (ta.getId ());
                 else {
-                    LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
+                    List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (ta.getTypeOther ());
                     if (types == null || types.isEmpty ())
                         throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + ta.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
 
@@ -1485,7 +1486,7 @@ public class AvatarDesignPanelTranslator {
             TAttribute returnTA = libraryFunction.getReturnAttributes ().get (i);
             String dummyName = "__dummy_return_attribute_" + returnTA.getId ();
 
-            LinkedList<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
+            List<AvatarAttribute> attrs = new LinkedList<AvatarAttribute> ();
             /* Creates all the attributes corresponding to this return attribute */
             if (returnTA.getType() == TAttribute.INTEGER
                 || returnTA.getType() == TAttribute.NATURAL
@@ -1498,7 +1499,7 @@ public class AvatarDesignPanelTranslator {
                 }
                 attrs.add (attr);
             } else {
-                LinkedList<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
+                List<TAttribute> types = adp.getAvatarBDPanel ().getAttributesOfDataType (returnTA.getTypeOther ());
                 if (types == null || types.isEmpty ())
                     throw new CheckingError (CheckingError.STRUCTURE_ERROR, "Unknown data type:  " + returnTA.getTypeOther () + " when calling " + libraryFunction.getFunctionName ());
 
@@ -1524,75 +1525,75 @@ public class AvatarDesignPanelTranslator {
 
 
     private void translateAvatarSMDReceiveSignal (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDReceiveSignal asmdrs) throws CheckingError {
-        AvatarStateMachine asm = _ab.getStateMachine ();
-        avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ());
-        if (atas == null)
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName());
-
-        // Get relation of that signal
-        if (_ab instanceof AvatarBlock) {
-            // Note that for library functions, signals are just placeholders so they don't need to be connected to anything
-            AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
-            if (ar == null) {
-		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		    //TraceManager.addDev("Receive/ Setting as attached " + atas);
-		    ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
-		}
-                throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel");
-	    }
-	    if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-		//TraceManager.addDev("Receive/ Setting as attached " + atas);
-		((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
-	    }
-        }
-	if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
-	    ((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
-	}
-	
-        AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdrs);
-        if (asmdrs.hasCheckableAccessibility())
-            aaos.setCheckable();
-
-        if (asmdrs.hasCheckedAccessibility())
-            aaos.setChecked();
-
-        if (aaos.isSending())
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue());
-
-        if (asmdrs.getNbOfValues() == -1)
-            throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue());
-
-        for(int i=0; i<asmdrs.getNbOfValues(); i++) {
-            String tmp = asmdrs.getValue(i);
-            if (tmp.isEmpty ())
-                throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue());
-
-            this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue());
-        }
-
-        if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
-            throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition");
-
-        // Checking expressions passed as parameter
-        for (int i=0; i<aaos.getNbOfValues(); i++) {
-            String theVal = aaos.getValue(i);
-            if (atas.getListOfAttributes ().get (i).isInt ()) {
-                if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
-                    throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
-            } else {
-                // We assume it is a bool attribute
-                if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
-                    throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
-            }
-        }
-
-        this.listE.addCor (aaos, asmdrs);
-        asmdrs.setAVATARID (aaos.getID());
-        asm.addElement (aaos);
-		if (asmdrs.getCheckLatency()){
-			aaos.setCheckLatency(true);
-			_as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID());
-		}
+    	AvatarStateMachine asm = _ab.getStateMachine ();
+    	avatartranslator.AvatarSignal atas = _ab.getAvatarSignalWithName (asmdrs.getSignalName ());
+    	if (atas == null)
+    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Unknown signal: " + asmdrs.getSignalName());
+
+    	// Get relation of that signal
+    	if (_ab instanceof AvatarBlock) {
+    		// Note that for library functions, signals are just placeholders so they don't need to be connected to anything
+    		AvatarRelation ar = _as.getAvatarRelationWithSignal (atas);
+    		if (ar == null) {
+    			if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    				//TraceManager.addDev("Receive/ Setting as attached " + atas);
+    				((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = false;
+    			}
+    			throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Signal used for receiving in " + asmdrs.getValue() + " is not connected to a channel");
+    		}
+    		if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    			//TraceManager.addDev("Receive/ Setting as attached " + atas);
+    			((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
+    		}
+    	}
+    	if (atas.getReferenceObject() instanceof ui.AvatarSignal) {
+    		((ui.AvatarSignal) atas.getReferenceObject()).attachedToARelation = true;
+    	}
+
+    	AvatarActionOnSignal aaos = new AvatarActionOnSignal ("action_on_signal", atas, asmdrs);
+    	if (asmdrs.hasCheckableAccessibility())
+    		aaos.setCheckable();
+
+    	if (asmdrs.hasCheckedAccessibility())
+    		aaos.setChecked();
+
+    	if (aaos.isSending())
+    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "A sending signal is used for receiving: " + asmdrs.getValue());
+
+    	if (asmdrs.getNbOfValues() == -1)
+    		throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal: " + asmdrs.getValue());
+
+    	for(int i=0; i<asmdrs.getNbOfValues(); i++) {
+    		String tmp = asmdrs.getValue(i);
+    		if (tmp.isEmpty ())
+    			throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Empty parameter in signal expression: " + asmdrs.getValue());
+
+    		this.manageAttribute (tmp, _ab, aaos, tdp, asmdrs, asmdrs.getValue());
+    	}
+
+    	if (aaos.getNbOfValues () != atas.getListOfAttributes ().size ())
+    		throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> nb of parameters does not match definition");
+
+    	// Checking expressions passed as parameter
+    	for (int i=0; i<aaos.getNbOfValues(); i++) {
+    		String theVal = aaos.getValue(i);
+    		if (atas.getListOfAttributes ().get (i).isInt ()) {
+    			if (AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, theVal) < 0)
+    				throw new CheckingError (CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
+    		} else {
+    			// We assume it is a bool attribute
+    			if (AvatarSyntaxChecker.isAValidBoolExpr(_as, _ab, theVal) < 0)
+    				throw new CheckingError(CheckingError.BEHAVIOR_ERROR, "Badly formed signal receiving: " + asmdrs.getValue() + " -> value at index #" + i + " does not match definition");
+    		}
+    	}
+
+    	this.listE.addCor (aaos, asmdrs);
+    	asmdrs.setAVATARID (aaos.getID());
+    	asm.addElement (aaos);
+    	if (asmdrs.getCheckLatency()){
+    		aaos.setCheckLatency(true);
+    		_as.checkedIDs.add(asmdrs.getName()+"-"+asmdrs.getSignalName()+":"+aaos.getID());
+    	}
     }
 
     private void translateAvatarSMDState (TDiagramPanel tdp, AvatarSpecification _as, AvatarStateMachineOwner _ab, AvatarSMDState tgc) throws CheckingError {
@@ -1886,21 +1887,21 @@ public class AvatarDesignPanelTranslator {
                             at.setDelays(tmp1, tmp2);
 
                         // Compute min and max
-                        tmp1 = modifyString (asmdco.getComputeMinDelay ());
-                        error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1);
-                        if (error < 0) {
-                            this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1);
-                            tmp1 = null;
-                        }
-                        tmp2 = modifyString(asmdco.getComputeMaxDelay());
-                        error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2);
-                        if (error < 0) {
-                            this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2);
-                            tmp2 = null;
-                        }
-
-                        if (tmp1 != null && tmp2 != null)
-                            at.setComputes(tmp1, tmp2);
+//                        tmp1 = modifyString (asmdco.getComputeMinDelay ());
+//                        error = AvatarSyntaxChecker.isAValidIntExpr (_as, _ab, tmp1);
+//                        if (error < 0) {
+//                            this.makeError (error, tdp, _ab, tgc, "compute min ", tmp1);
+//                            tmp1 = null;
+//                        }
+//                        tmp2 = modifyString(asmdco.getComputeMaxDelay());
+//                        error = AvatarSyntaxChecker.isAValidIntExpr(_as, _ab, tmp2);
+//                        if (error < 0) {
+//                            this.makeError (error, tdp, _ab, tgc, "compute max ", tmp2);
+//                            tmp2 = null;
+//                        }
+//
+//                        if (tmp1 != null && tmp2 != null)
+//                            at.setComputes(tmp1, tmp2);
 
                         // Probability
                         tmp1 = asmdco.getProbability ();
@@ -2018,15 +2019,14 @@ public class AvatarDesignPanelTranslator {
         return null;
     }
 
-
-    public void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
+    private void createRelationsBetweenBlocks(AvatarSpecification _as, List<AvatarBDBlock> _blocks) {
         adp.getAvatarBDPanel().updateAllSignalsOnConnectors();
         Iterator<TGComponent> iterator = adp.getAvatarBDPanel().getComponentList().listIterator();
 
         TGComponent tgc;
         AvatarBDPortConnector port;
         AvatarBDBlock block1, block2;
-        LinkedList<String> l1, l2;
+        List<String> l1, l2;
         int i;
         String name1, name2;
         AvatarRelation r;
@@ -2094,16 +2094,16 @@ public class AvatarDesignPanelTranslator {
     }
 
     private void addCheckingError(CheckingError ce) {
-        if (checkingErrors == null) {
-            checkingErrors = new LinkedList<CheckingError> ();
-        }
+//        if (checkingErrors == null) {
+//            checkingErrors = new LinkedList<CheckingError> ();
+//        }
         checkingErrors.add (ce);
     }
 
     private void addWarning(CheckingError ce) {
-        if (warnings == null) {
-            warnings = new LinkedList<CheckingError> ();
-        }
+//        if (warnings == null) {
+//            warnings = new LinkedList<CheckingError> ();
+//        }
         warnings.add (ce);
     }
 
@@ -2190,7 +2190,7 @@ public class AvatarDesignPanelTranslator {
         return s;
     }
 
-    public boolean isAVariableAssignation (String _input) {
+   private boolean isAVariableAssignation (String _input) {
         int index = _input.indexOf('=');
         if (index == -1) {
             return false;
@@ -2216,11 +2216,8 @@ public class AvatarDesignPanelTranslator {
 
         return !(TAttribute.isAValidId(tmp, false, false));
     }
-
-    public void checkForAfterOnCompositeTransition() {
-
-    }
-
-
-
+//
+//    public void checkForAfterOnCompositeTransition() {
+//
+//    }
 }
diff --git a/src/main/java/ui/DesignPanelTranslator.java b/src/main/java/ui/DesignPanelTranslator.java
index 82c6fef4c4de012a47df3b7e3043e1c3e8b5b527..ec674a54c8217801c8b6d1e02715a62b176d6698 100755
--- a/src/main/java/ui/DesignPanelTranslator.java
+++ b/src/main/java/ui/DesignPanelTranslator.java
@@ -60,11 +60,11 @@ import java.util.Vector;
  */
 public class DesignPanelTranslator {
     protected TURTLEDesignPanelInterface dp;
-    protected LinkedList<CheckingError> checkingErrors, warnings;
+    protected List<CheckingError> checkingErrors, warnings;
     protected CorrespondanceTGElement listE; // usual list
     protected CorrespondanceTGElement listB; // list for particular element -> first element of group of blocks
-    protected LinkedList <TDiagramPanel> panels;
-    protected LinkedList <ActivityDiagram> activities;
+    protected List <TDiagramPanel> panels;
+    protected List <ActivityDiagram> activities;
 
     public DesignPanelTranslator(TURTLEDesignPanelInterface _dp) {
         dp = _dp;
@@ -80,11 +80,11 @@ public class DesignPanelTranslator {
         activities = new LinkedList <ActivityDiagram>();
     }
 
-    public LinkedList<CheckingError> getErrors() {
+    public List<CheckingError> getErrors() {
         return checkingErrors;
     }
 
-    public LinkedList<CheckingError> getWarnings() {
+    public List<CheckingError> getWarnings() {
         return warnings;
     }
 
@@ -93,7 +93,7 @@ public class DesignPanelTranslator {
     }
 
     public TURTLEModeling generateTURTLEModeling() {
-        LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>();
+        List<TClassInterface> tclasses = new LinkedList<TClassInterface>();
 
         for (Object tgc: dp.getStructurePanel ().getComponentList ())
             if (tgc instanceof TClassInterface)
@@ -102,7 +102,7 @@ public class DesignPanelTranslator {
         return generateTURTLEModeling(tclasses, "");
     }
 
-    public TURTLEModeling generateTURTLEModeling(LinkedList<TClassInterface> tclasses, String preName) {
+    public TURTLEModeling generateTURTLEModeling(List<TClassInterface> tclasses, String preName) {
         TURTLEModeling tmodel = new TURTLEModeling();
         addTClasses(dp, tclasses, preName, tmodel);
         addRelations(dp, tmodel);
@@ -124,7 +124,7 @@ public class DesignPanelTranslator {
     }
 
 
-    public void addTClasses(TURTLEDesignPanelInterface dp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
+    public void addTClasses(TURTLEDesignPanelInterface dp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
         TDiagramPanel tdp;
         // search for class diagram panels
         tdp = dp.panelAt(0);
@@ -135,8 +135,8 @@ public class DesignPanelTranslator {
             addTClassesFromPanel(tdp, (ClassDiagramPanelInterface)tdp, tclasses, preName, tm);
     }
 
-    private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, LinkedList<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
-       // LinkedList list = tdp.getComponentList();
+    private void addTClassesFromPanel(TDiagramPanel diag, ClassDiagramPanelInterface tdp, List<TClassInterface> tclasses, String preName, TURTLEModeling tm) {
+       // List list = tdp.getComponentList();
 
         // search for tclasses
         for (Object tgc: tdp.getComponentList ())
@@ -1156,7 +1156,7 @@ public class DesignPanelTranslator {
         return -1;
     }
 
-    private void setGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) {
+    private void setGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) {
         Gate g1, g2;
 
         for (TTwoAttributes tt: gates) {
@@ -1174,7 +1174,7 @@ public class DesignPanelTranslator {
      * Seems like we can't instantiate TCDWatchdogOperator
      * and the setWatchdogGatesOf function is buggy: it uses
      * TTwoAttributes as if they were TAttribute.
-    private void setWatchdogGatesOf(Relation r, LinkedList<TTwoAttributes> gates, TClass tc1, TClass tc2) {
+    private void setWatchdogGatesOf(Relation r, List<TTwoAttributes> gates, TClass tc1, TClass tc2) {
 
         for (TTwoAttributes t: gates) {
             Gate g1 = tc1.getGateByName(((TAttribute) t).getId());
diff --git a/src/main/java/ui/GTMLModeling.java b/src/main/java/ui/GTMLModeling.java
index 545af8aa925b49b37457394b07315957ad9aa89e..ea8fa2e3678ace381db547c86b47f79c866dcb40 100755
--- a/src/main/java/ui/GTMLModeling.java
+++ b/src/main/java/ui/GTMLModeling.java
@@ -1078,7 +1078,7 @@ public class GTMLModeling {
                     if (!(alreadyConsidered.contains(port1))) {
                         portstome = tmlcdp.tmlctdp.getPortsConnectedTo(port1, componentsToTakeIntoAccount);
                         //TraceManager.addDev("Considering port1 = " +port1.getPortName() + " size of connecting ports:" + portstome.size());
-                        Iterator<?> ite = portstome.listIterator();
+                       // Iterator<?> ite = portstome.listIterator();
                         /*while(ite.hasNext()) {
                             TraceManager.addDev("port=" + ((TMLCPrimitivePort)(ite.next())).getPortName());
                         }*/
@@ -2691,6 +2691,8 @@ public class GTMLModeling {
           // Syntax has been checked -> splitting ads
           // The splitting works only if there is no other operations than sequences and references to ADs/SDs
           // between forks and joins
+    	
+    	// Issue #69; Unused TMLCPJunction
           tmlcp.splitADs();
 
           TraceManager.addDev("<--- TMLCP modeling:");
@@ -3078,7 +3080,8 @@ public class GTMLModeling {
         tmlcp.correctReferences(); //Update references to the right activity and sequence diagrams
         //tmlcp.generateNexts(); // Add nexts elements to CPElements
         //tmlcp.removeADConnectors(); // Remove connectors since nexts have been filled
-        tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD
+        // Issue #69; Unused TMLCPJunction
+        //tmlcp.splitADs(); // Splitting ADs so as to remove junctions -> new ADs are introduced for each junction inside an AD
 
         /*for( TMLCPSequenceDiagram seqDiag: tmlcp.getCPSequenceDiagrams() )      {
           TraceManager.addDev( "**********" );
@@ -3096,7 +3099,7 @@ public class GTMLModeling {
             throws MalformedTMLDesignException {
         tmltranslator.tmlcp.TMLCPStart start;
         tmltranslator.tmlcp.TMLCPStop stop;
-        tmltranslator.tmlcp.TMLCPJunction junction;
+      //  tmltranslator.tmlcp.TMLCPJunction junction;
         tmltranslator.tmlcp.TMLCPJoin join;
         tmltranslator.tmlcp.TMLCPFork fork;
         tmltranslator.tmlcp.TMLCPChoice choice;
@@ -3157,11 +3160,12 @@ public class GTMLModeling {
                     refAD = new tmltranslator.tmlcp.TMLCPRefAD(compID, component);
                     AD.addTMLCPElement(refAD);
                 }
-                if (component instanceof ui.tmlcp.TMLCPJunction) {
-                    //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() );
-                    junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component);
-                    AD.addTMLCPElement(junction);
-                }
+                // Issue #69; Unused TMLCPJunction
+//                if (component instanceof ui.tmlcp.TMLCPJunction) {
+//                    //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() );
+//                    junction = new tmltranslator.tmlcp.TMLCPJunction(compID, component);
+//                    AD.addTMLCPElement(junction);
+//                }
                 if (component instanceof ui.tmlcp.TMLCPJoin) {
                     //TraceManager.addDev( k + " " + component.getName() + "\t" + component.getValue() + "\t" + component.getY() );
                     join = new tmltranslator.tmlcp.TMLCPJoin(compID, component);
diff --git a/src/main/java/ui/GTURTLEModeling.java b/src/main/java/ui/GTURTLEModeling.java
index cb402e28879a0b22960c755942723c46cf14321f..010b42b65ac2e9f6fb982aa15f5298c05391ec61 100644
--- a/src/main/java/ui/GTURTLEModeling.java
+++ b/src/main/java/ui/GTURTLEModeling.java
@@ -58,8 +58,6 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 import proverifspec.ProVerifOutputAnalyzer;
-import proverifspec.ProVerifQueryAuthResult;
-import proverifspec.ProVerifQueryResult;
 import proverifspec.ProVerifSpec;
 import req.ebrdd.EBRDD;
 import sddescription.HMSC;
@@ -745,11 +743,11 @@ outerloop:
 		List<HwLink> links = map.getTMLArchitecture().getHwLinks();
 		List<HwNode> found = new ArrayList<HwNode>();
 		List<HwNode> done = new ArrayList<HwNode>();
-		List<HwNode> path = new ArrayList<HwNode>();
+		//List<HwNode> path = new ArrayList<HwNode>();
 
 		HwExecutionNode node1 = (HwExecutionNode) map.getHwNodeOf(t1);
 
-		Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>();
+		//Map<HwNode, List<HwNode>> pathMap = new HashMap<HwNode, List<HwNode>>();
 		for (HwLink link : links) {
 			if (link.hwnode == node1) {
 				found.add(link.bus);
@@ -820,7 +818,7 @@ outerloop:
 			TraceManager.addDev("Found firewall " + firewallNode.getName());
 			TMLCPrimitiveComponent firewallComp = null;
 			TMLADStartState adStart = null;
-			TMLADForEverLoop adLoop = null;
+			//TMLADForEverLoop adLoop = null;
 			TMLADChoice adChoice = null;
 			TMLADChoice adChoice2 = null;
 			TMLADChoice adChoiceMain = null;
@@ -1335,7 +1333,7 @@ outerloop:
         			xpos = wr.getX();
             	    ypos = wr.getY();
             	    fromStart = tad.findTGConnectorEndingAt(wr.getTGConnectingPointAtIndex(0));
-            	    TGConnectingPoint point = fromStart.getTGConnectingPointP2();
+            	    //TGConnectingPoint point = fromStart.getTGConnectingPointP2();
 					int yShift = 50;
             	        
 					TMLADSendRequest sendreq = new TMLADSendRequest(xpos, ypos, tad.getMinX(), tad.getMaxX(), tad.getMinY(), tad.getMaxY(), false, null, tad);
@@ -2519,7 +2517,7 @@ memloop:
 		}
 
 		// Assume the inputData is in AUT format: generated by RTL or CADP
-		public String performProjection(String inputData, LinkedList<TClassAndGateDS> gates) {
+		public String performProjection(String inputData, List<TClassAndGateDS> gates) {
 			StringBuffer result = new StringBuffer("");
 			StringReader sr = new StringReader(inputData);
 			BufferedReader br = new BufferedReader(sr);
@@ -2941,7 +2939,7 @@ memloop:
 
 
 		// BUILDING A TURTLE MODELING AND CHECKING IT
-		public boolean checkTURTLEModeling(LinkedList<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) {
+		public boolean checkTURTLEModeling(List<TClassInterface> tclasses, DesignPanel dp, boolean overideSyntaxChecking) {
 			// Builds a TURTLE modeling from diagrams
 			//warnings = new Vector();
 			//checkingErrors = null;
@@ -2981,7 +2979,7 @@ memloop:
 		}
 
 		// BUILDING An AVATAR Design AND CHECKING IT
-		public boolean checkAvatarDesign(LinkedList<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) {
+		public boolean checkAvatarDesign( List<AvatarBDStateMachineOwner> blocks, AvatarDesignPanel adp, boolean _optimize) {
 			// Builds a TURTLE modeling from diagrams
 			//warnings = new Vector();
 			//checkingErrors = null;
@@ -3043,14 +3041,14 @@ memloop:
 			}
 
 			// Building the list of all states in the mutex
-			LinkedList<TGComponent> compInMutex = adp.getListOfComponentsInMutex();
+			List<TGComponent> compInMutex = adp.getListOfComponentsInMutex();
 			TraceManager.addDev("Nb of elements in mutex:" + compInMutex.size());
 
 			if (compInMutex.size() == 0) {
 				return -2;
 			}
 
-			LinkedList<TGComponent> comps;
+			List<TGComponent> comps;
 			boolean found;
 			int nbOfFound;
 			int cpt = 0;
@@ -3301,7 +3299,7 @@ memloop:
 			if (tgc instanceof AvatarBDBlock) {
 				AvatarSMDPanel asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), tgc.getValue());
 				s.append(asmdp.saveInXML());
-				LinkedList<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList();
+				List<AvatarBDBlock> list = ((AvatarBDBlock) tgc).getFullBlockList();
 				for (AvatarBDBlock b : list) {
 					asmdp = mgui.getAvatarSMDPanel(mgui.getCurrentSelectedIndex(), b.getValue());
 					s.append(asmdp.saveInXML());
@@ -7175,7 +7173,7 @@ memloop:
 				boolean latencyCheck = false;
 				boolean invariant = false;
 				boolean breakpoint = false;
-				boolean hidden = false;
+				//boolean hidden = false;
 				boolean masterMutex = false;
 				boolean enable = true;
 
@@ -7201,8 +7199,8 @@ memloop:
 						} else if (elt.getTagName().equals("infoparam")) {
 							myName = elt.getAttribute("name");
 							myValue = elt.getAttribute("value");
-						} else if (elt.getTagName().equals("hidden")) {
-							hidden = elt.getAttribute("value").equals("true");
+//						} else if (elt.getTagName().equals("hidden")) {
+//							hidden = elt.getAttribute("value").equals("true");
 						} else if (elt.getTagName().equals("enabled")) {
 							enable = elt.getAttribute("value").equals("true");
 						} else if (elt.getTagName().equals("TGConnectingPoint")) {
@@ -7893,7 +7891,7 @@ memloop:
 					dp2 = art.getDesignPanel();
 
 					final Iterator<TGComponent> iterator2 = dp2.tcdp.getComponentList().listIterator();
-					LinkedList<TClassInterface> tclasses = new LinkedList<TClassInterface>();
+					List<TClassInterface> tclasses = new LinkedList<TClassInterface>();
 					while (iterator2.hasNext()) {
 						tgc = iterator2.next();
 						if (tgc instanceof TClassInterface) {
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 891aa6172d0fe629ba288660a992fcb9f4e6699b..754598e246923d824d0e1770433f6603a57a3f74 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -110,8 +110,6 @@ import java.util.*;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static myutil.FileUtils.checkFileForOpen;
-
 // AVATAR
 
 /**
@@ -172,7 +170,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public KeyListener keyHandler;
 
     // Validation
-    public LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
+    public List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
 
     // Status bar
     private JLabel status;
@@ -2430,7 +2428,6 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     public void updateLastOpenFile(File file) {
         if (ConfigurationTTool.LastOpenFileDefined) {
 
-
             ConfigurationTTool.LastOpenFile = file.getPath();
             if (ConfigurationTTool.LastOpenFile.contains(".ttool" + File.separator)) {
                 int last = 0;
@@ -2500,28 +2497,8 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             // open the new TURTLE modeling
             newTurtleModeling();
 
-            //TraceManager.addDev("Loading");
-            // load the new TURTLE modeling
-            // Issue #41: Moved to common method
             loadModels(gtm.mergeTURTLEGModeling(oldmodeling, s), "merged");
-            //            try {
-            //                //TraceManager.addDev("Merging");
-            //                gtm.enableUndo(false);
-            //                gtm.loadModelingFromXML(gtm.mergeTURTLEGModeling(oldmodeling, s));
-            //                gtm.enableUndo(true);
-            //                gtm.saveOperation(getCurrentSelectedPoint());
-            //                //gtm.saveOperation(tcdp);
-            //                frame.setTitle("TTool: " + file.getAbsolutePath());
-            //                makeLotosFile();
-            //
-            //                if (gtm.getCheckingErrors().size() > 0) {
-            //                    JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //                }
-            //
-            //            } catch (MalformedModelingException mme) {
-            //                JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //            }
-            //            dtree.forceUpdate();
+
         }
     }
 
@@ -2566,91 +2543,12 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             jfc.setAcceptAllFileFilterUsed(false);
             FileNameExtensionFilter filter = new FileNameExtensionFilter("TTool project", "ttool");
             jfc.setFileFilter(filter);
-            /*jfc.addMouseListener(new MouseListener() {
-
-        	    @Override
-        	    public void mouseClicked(MouseEvent arg0) {
-
-        	        if(arg0.getClickCount() == 2) {
-        	            File file = jfc.getSelectedFile();
-        	            if(!FileUtils.getExtension(file).equals("ttool")) {
-        	                jfc.setCurrentDirectory(file);
-        	                jfc.rescanCurrentDirectory();
-        	            }
-        	            else {
-        	                jfc.approveSelection();
-        	            }
-        	        }
-        	    }
-
-				@Override
-				public void mouseEntered(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseExited(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mousePressed(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseReleased(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}		
-        	});*/
         } else {
             jfc.resetChoosableFileFilters();
             jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
             jfc.setAcceptAllFileFilterUsed(false);
             FileNameExtensionFilter filter = new FileNameExtensionFilter("XML files", "xml");
             jfc.setFileFilter(filter);
-            /*jfc.addMouseListener(new MouseListener() {
-
-        	    @Override
-        	    public void mouseClicked(MouseEvent arg0) {
-
-        	        if(arg0.getClickCount() == 2) {
-        	            File file = jfc.getSelectedFile();
-        	            if(!FileUtils.getExtension(file).equals("ttool")) {
-        	                jfc.setCurrentDirectory(file);
-        	                jfc.rescanCurrentDirectory();
-        	            }
-        	        }
-        	    }
-
-				@Override
-				public void mouseEntered(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseExited(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mousePressed(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}
-
-				@Override
-				public void mouseReleased(MouseEvent e) {
-					// TODO Auto-generated method stub
-					return;
-				}		
-        	});*/
         }
         int returnVal = jfc.showOpenDialog(frame);
 
@@ -2755,6 +2653,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
     }
 
     public void openLastProject(int id) {
+
         // Check if a current modeling is opened
         boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
         if (b) {
@@ -2764,11 +2663,15 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         }
 
         file = new File(ConfigurationTTool.LastOpenFiles[id]);
+        //TraceManager.addDev("Opening project #" + id + " for file=" + file.getAbsolutePath());
 
         if (checkFileForOpen(file)) {
             String s = null;
 
             if (FileUtils.getExtension(file).equals("ttool")) {
+                openProjectFromFile(file);
+                return;
+                /*TraceManager.addDev("this is a ttool project");
                 int last = 0;
                 for (int i = 0; i < ConfigurationTTool.LastOpenFile.length(); i++) {
                     if (ConfigurationTTool.LastOpenFile.charAt(i) == '/')
@@ -2783,26 +2686,27 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
                     SpecConfigTTool.loadConfigFile(config);
                 } catch (MalformedConfigurationException e) {
                     System.err.println(e.getMessage() + " : Can't load config file.");
-                }
+                }*/
             } else {
                 dir = null;
                 config = null;
                 SpecConfigTTool.setBasicConfig(systemcOn);
+                try {
+                    FileInputStream fis = new FileInputStream(file);
+                    int nb = fis.available();
+
+                    byte[] ba = new byte[nb];
+                    fis.read(ba);
+                    fis.close();
+                    s = new String(ba, "UTF-8");
+                    //TraceManager.addDev("Model:" + s);
+                } catch (Exception e) {
+                    JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                    return;
+                }
             }
 
-            try {
-                FileInputStream fis = new FileInputStream(file);
-                int nb = fis.available();
 
-                byte[] ba = new byte[nb];
-                fis.read(ba);
-                fis.close();
-                s = new String(ba, "UTF-8");
-                //TraceManager.addDev("Model:" + s);
-            } catch (Exception e) {
-                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-                return;
-            }
 
             // close current modeling
             closeTurtleModeling();
@@ -2815,32 +2719,9 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             // Issue #41: Moved to common method
             updateLastOpenFile(file);
             loadModels(s, "loaded");
-            //TraceManager.addDev("Loading");
-            // load the new TURTLE modeling
-            //            try {
-            //                gtm.loadModelingFromXML(s);
-            //                //gtm.saveOperation(tcdp);
-            //                frame.setTitle("TTool: " + file.getAbsolutePath());
-            //                makeLotosFile();
-            //
-            //                if (gtm.getCheckingErrors().size() > 0) {
-            //                    JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //                }
-            //            }
-            //            catch (MalformedModelingException mme) {
-            //                JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-            //                frame.setTitle("TTool: unamed project");
-            //            }
-            //
-            //            dtree.forceUpdate();
-            //            gtm.enableUndo(true);
-            //            gtm.saveOperation(getCurrentSelectedPoint());
+
         }
 
-        //Added by Solange
-        //TURTLEPanel tp = getCurrentTURTLEPanel();
-        //gtm.generateLists((ProactiveDesignPanel)tp);
-        //
     }
 
     private void loadModels(final String xmlModel,
@@ -3610,7 +3491,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             DesignPanel dp = (DesignPanel) tp;
             JDialogModelChecking.validated = dp.validated;
             JDialogModelChecking.ignored = dp.ignored;
-            LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
+            List<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface>();
             JDialogModelChecking jdmc = new JDialogModelChecking(frame, tclassesToValidate, dp.tcdp.getComponentList(), "Choosing Tclasses to validate");
             if (!automatic) {
                 GraphicLib.centerOnParent(jdmc);
@@ -3722,7 +3603,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             AvatarDesignPanel adp = (AvatarDesignPanel) tp;
             //JDialogModelChecking.validated = adp.validated;
             //JDialogModelChecking.ignored = adp.ignored;
-            LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
+            List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
             JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
             if (!automatic) {
                 GraphicLib.centerOnParent(jdmc);
@@ -3782,7 +3663,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
 
             //JDialogModelChecking.validated = adp.validated;
             //JDialogModelChecking.ignored = adp.ignored;
-            LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
+            List<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner>();
             JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
             if (!automatic) {
                 GraphicLib.centerOnParent(jdmc);
@@ -4208,14 +4089,14 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return ret;
     }
 
-    public LinkedList<TAttribute> getAllAttributes() {
+    public List<TAttribute> getAllAttributes() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         String name = getCurrentTDiagramPanel().getName();
 
         return this.getAllAttributes(tp, name);
     }
 
-    public LinkedList<TAttribute> getAllAttributes(TURTLEPanel tp, String name) {
+    public List<TAttribute> getAllAttributes(TURTLEPanel tp, String name) {
         if (tp == null) {
             return null;
         }
@@ -4228,8 +4109,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return adp.getAllAttributes(name);
     }
 
-
-    public LinkedList<AvatarMethod> getAllMethods() {
+    public List<AvatarMethod> getAllMethods() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         if (tp == null) {
             return null;
@@ -4245,13 +4125,13 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return adp.getAllMethods(name);
     }
 
-    public LinkedList<AvatarSignal> getAllSignals() {
+    public List<AvatarSignal> getAllSignals() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         String name = getCurrentTDiagramPanel().getName();
         return this.getAllSignals(tp, name);
     }
 
-    public LinkedList<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) {
+    public List<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) {
         if (tp == null) {
             return null;
         }
@@ -4505,7 +4385,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return tmlcomp.getAllOutRequests(name);
     }
 
-    public LinkedList<String> getAllTimers() {
+    public List<String> getAllTimers() {
         TURTLEPanel tp = getCurrentTURTLEPanel();
         if (tp == null) {
             return null;
@@ -8544,7 +8424,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
 
         AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator(designDiagramPanel);
 
-        LinkedList<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
+        List<AvatarBDStateMachineOwner> adp = designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
         AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp);
 
         // Generator for block tasks and application main file
diff --git a/src/main/java/ui/TGComponent.java b/src/main/java/ui/TGComponent.java
index e94e968e408ae31509754943b4f004994551cf1b..3d48762e9b1ee42229a55734f072450b44d73dbd 100755
--- a/src/main/java/ui/TGComponent.java
+++ b/src/main/java/ui/TGComponent.java
@@ -59,12 +59,17 @@ import ui.tmldd.TMLArchiFirewallNode;
 import ui.util.IconManager;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Point;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.geom.Point2D;
 import java.util.ArrayList;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Vector;
 
 /**
@@ -482,13 +487,14 @@ public abstract class TGComponent implements CDElement, GenericTree {
         latencyCheck = b;
     }
 
-    public LinkedList<TGComponent> getAllCheckableInvariant() {
-        LinkedList<TGComponent> list = new LinkedList<TGComponent>();
+    public List<TGComponent> getAllCheckableInvariant() {
+        List<TGComponent> list = new LinkedList<TGComponent>();
         getAllCheckableInvariant(list);
+        
         return list;
     }
 
-    public void getAllCheckableInvariant(LinkedList<TGComponent> _list) {
+    public void getAllCheckableInvariant( List<TGComponent> _list) {
         if (invariant) {
             _list.add(this);
         }
@@ -606,7 +612,6 @@ public abstract class TGComponent implements CDElement, GenericTree {
         GraphicLib.dashedRect(g, x + width + s2 + s3, y + s3, w + 15, h - 12);
     }
 
-
     public void drawAttributes(Graphics g, String attr) {
         if (attr == null) {
             return;
diff --git a/src/main/java/ui/TGUIAction.java b/src/main/java/ui/TGUIAction.java
index 6ec0575134c1dc742a55375fdb720c41b76f2fa2..f3744ee46a10c205f581eee7cf04af46b7b75211 100644
--- a/src/main/java/ui/TGUIAction.java
+++ b/src/main/java/ui/TGUIAction.java
@@ -36,9 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
 import common.ConfigurationTTool;
@@ -50,9 +47,6 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.KeyEvent;
 
-import myutil.*;
-
-
 /**
  * Class TGUIAction
  *
@@ -265,7 +259,7 @@ public class TGUIAction extends AbstractAction {
     public static final int TMLCP_START = 384;
     public static final int TMLCP_STOP = 385;
     public static final int TMLCP_CHOICE = 386;
-    public static final int TMLCP_JUNCTION = 387;
+   // public static final int TMLCP_JUNCTION = 387;
     public static final int TMLCP_FOR_LOOP = 416;
 
     public static final int TMLSD_STORAGE_INSTANCE = 388;
@@ -1146,7 +1140,9 @@ public class TGUIAction extends AbstractAction {
         actions[TMLCP_CHOICE] = new TAction("add-tmlcp-choice", "Add Choice", IconManager.imgic208, IconManager.imgic208, "Choice", "Add a choice - non-deterministic or guarded - to the currently opened communication pattern diagram", 0);
         actions[TMLCP_START] = new TAction("add-tmlcp-start", "Add Start state", IconManager.imgic222, IconManager.imgic222, "Start", "Add a start state to the currently opened communication pattern diagram", 0);
         actions[TMLCP_STOP] = new TAction("add-tmlcp-stop", "Add Stop", IconManager.imgic210, IconManager.imgic210, "Stop", "Add a termination state to the currently opened communication pattern diagram", 0);
-        actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0);
+        
+        // Issue #69 Removed unused TMLCPJunction
+        //actions[TMLCP_JUNCTION] = new TAction("add-tmlcp-junction", "Add Junction", IconManager.imgic212, IconManager.imgic212, "Junction", "Add a junction with three inputs to the currently opened communication pattern diagram", 0);
         actions[TMLCP_FOR_LOOP] = new TAction("add-tmlcp-forloop", "Add loop", IconManager.imgic912, IconManager.imgic912, "Loop", "Add a for loop to the currently opened communication pattern diagram", 0);
 
         actions[TMLSD_EDIT] = new TAction("edit-tmlsd-diagram", "Edit CP-SD diagram", IconManager.imgic100, IconManager.imgic101, "Edit the Sequence Diagram", "Make it possible to edit the currently opened communication pattern sequence diagram", 0);
diff --git a/src/main/java/ui/TURTLEModelChecker.java b/src/main/java/ui/TURTLEModelChecker.java
index f5d9ab4d1c492cbf3189668ba87ed53f01f129f9..716b0ac696eead79f1b8289e0f9f33a67a4c9251 100755
--- a/src/main/java/ui/TURTLEModelChecker.java
+++ b/src/main/java/ui/TURTLEModelChecker.java
@@ -36,21 +36,32 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui;
 
+import java.io.StringReader;
+import java.util.LinkedList;
+import java.util.List;
+
 import compiler.tmlparser.ParseException;
 import compiler.tmlparser.SimpleNode;
 import compiler.tmlparser.TMLExprParser;
 import compiler.tmlparser.TokenMgrError;
 import myutil.TraceManager;
-import translator.*;
-
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.LinkedList;
+import translator.ADActionStateWithGate;
+import translator.ADActionStateWithParam;
+import translator.ADChoice;
+import translator.ADComponent;
+import translator.ADDelay;
+import translator.ADLatency;
+import translator.ADParallel;
+import translator.ADTLO;
+import translator.ADTimeInterval;
+import translator.ActivityDiagram;
+import translator.CheckingError;
+import translator.Gate;
+import translator.Param;
+import translator.TClass;
+import translator.TURTLEModeling;
 
 
 /**
@@ -95,7 +106,7 @@ public class TURTLEModelChecker {
 	private String ERROR_AD_009_1 = " variable is not correctly used";
 	private String ERROR_AD_009_2 = " unknown variable";
 	private String ERROR_AD_009_3 = " unknown gate";
-	private String ERROR_AD_009_4 = " unknown param";
+	//private String ERROR_AD_009_4 = " unknown param";
 	private String ERROR_AD_009_5 = " null gate";
 	private String ERROR_AD_009_6 = " null param";
 	
@@ -581,7 +592,7 @@ public class TURTLEModelChecker {
 		}  
 		
 		// Tree analysis: if the tree contains a variable, then, this variable has not been declared
-		ArrayList<String> vars = root.getVariables();
+		List<String> vars = root.getVariables();
 		for(String s: vars) {
 			// is that string a variable?
 			if ((s.compareTo("true") != 0) && (s.compareTo("false") != 0) && (s.compareTo("nil") != 0)) {
diff --git a/src/main/java/ui/avatarbd/AvatarBDBlock.java b/src/main/java/ui/avatarbd/AvatarBDBlock.java
index e5e329766904ad9895140bb6227f5caf972fb344..5edc8eddbf1208c35bd8a3ee7ad96d7af27385a9 100644
--- a/src/main/java/ui/avatarbd/AvatarBDBlock.java
+++ b/src/main/java/ui/avatarbd/AvatarBDBlock.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarbd;
 
 import myutil.Conversion;
@@ -57,16 +56,20 @@ import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.PipedInputStream;
 import java.io.PipedOutputStream;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 
 
 import javax.swing.*;
-import java.awt.*;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
 import java.util.HashMap;
 import proverifspec.ProVerifResultTrace;
 import proverifspec.ProVerifResultTraceStep;
@@ -89,8 +92,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
     private static String stereotype = "block";
     private static String stereotypeCrypto = "cryptoblock";
 
-    protected static ArrayList<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock"));
-    protected static ArrayList<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK));
+    protected static List<String> BLOCK_TYPE_STR = new ArrayList<String>(Arrays.asList("block", "cryptoblock"));
+    protected static List<Color> BLOCK_TYPE_COLOR = new ArrayList<Color>(Arrays.asList(ColorManager.AVATAR_BLOCK, ColorManager.AVATAR_BLOCK));
     private int typeStereotype = 0; // <<block>> by default
 
     private int maxFontSize = 12;
@@ -111,13 +114,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
 
     // TAttribute, AvatarMethod, AvatarSignal
-    protected LinkedList<TAttribute> myAttributes;
-    protected LinkedList<AvatarMethod> myMethods;
-    protected LinkedList<AvatarSignal> mySignals;
+    protected List<TAttribute> myAttributes;
+    protected List<AvatarMethod> myMethods;
+    protected List<AvatarSignal> mySignals;
     protected String[] globalCode;
 
-	protected HashMap<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>();
-	protected HashMap<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>();
+	protected Map<TAttribute, ProVerifResultTrace> attrTraceMap = new HashMap<TAttribute, ProVerifResultTrace>();
+	protected Map<TAttribute, Integer> attrLocMap = new HashMap<TAttribute, Integer>();
 	
     public String oldValue;
 
@@ -195,7 +198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         this.mySignals.add(sig);
     }
 
-    public void internalDrawingAux(Graphics graph) {
+    private void internalDrawingAux(Graphics graph) {
 
         //TraceManager.addDev("Block drawing aux = " + this);
 
@@ -595,7 +598,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
     }
 
-
+    @Override
     public TGComponent isOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, x, y, width, height)) {
             return this;
@@ -621,6 +624,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return result;
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
         int textX = (int) (this.textX * this.tdp.getZoom());
         if (iconIsDrawn) {
@@ -814,16 +818,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         _jdab.enableJavaKeyword(false);
     }
 
-
+    @Override
     public int getType() {
         return TGComponentManager.AVATARBD_BLOCK;
     }
 
+    @Override
     public boolean acceptSwallowedTGComponent(TGComponent tgc) {
         return tgc instanceof AvatarBDBlock || tgc instanceof AvatarBDLibraryFunction;
 
     }
 
+    @Override
     public boolean addSwallowedTGComponent(TGComponent tgc, int x, int y) {
         boolean swallowed = false;
 
@@ -871,6 +877,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return true;
     }
 
+    @Override
     public void removeSwallowedTGComponent(TGComponent tgc) {
         removeMyInternalComponent(tgc, false);
     }
@@ -908,6 +915,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return false;
     }
 
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<blockType data=\"");
@@ -1123,7 +1131,6 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         }
 
         //TraceManager.addDev("LEP End Block  = " + this);
-
     }
 
     public boolean addStereotype(String s, int rgb) {
@@ -1191,7 +1198,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return ret;
     }
 
-
+    @Override
     public void hasBeenResized() {
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarBDBlock) {
@@ -1207,6 +1214,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
 
     }
 
+    @Override
     public void resizeWithFather() {
         if ((father != null) && (father instanceof AvatarBDBlock)) {
             // Too large to fit in the father? -> resize it!
@@ -1217,8 +1225,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         }
     }
 
-    public LinkedList<AvatarBDBlock> getBlockList() {
-        LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
+    public List<AvatarBDBlock> getBlockList() {
+        List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarBDBlock) {
                 list.add((AvatarBDBlock) (tgcomponent[i]));
@@ -1227,8 +1235,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return list;
     }
 
-    public LinkedList<AvatarBDBlock> getFullBlockList() {
-        LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
+    public List<AvatarBDBlock> getFullBlockList() {
+        List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock>();
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (tgcomponent[i] instanceof AvatarBDBlock) {
                 list.add((AvatarBDBlock) (tgcomponent[i]));
@@ -1238,8 +1246,8 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return list;
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList() {
-        LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>();
+    public List<AvatarBDLibraryFunction> getFullLibraryFunctionList() {
+        List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction>();
         for (int i = 0; i < nbInternalTGComponent; i++) {
             if (this.tgcomponent[i] instanceof AvatarBDLibraryFunction)
                 list.add((AvatarBDLibraryFunction) this.tgcomponent[i]);
@@ -1251,13 +1259,13 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
     }
 
     public boolean hasInternalBlockWithName(String name) {
-        LinkedList<AvatarBDBlock> list = getFullBlockList();
+        List<AvatarBDBlock> list = getFullBlockList();
         for (AvatarBDBlock b : list) {
             if (b.getValue().compareTo(name) == 0) {
                 return true;
             }
         }
-        LinkedList<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList();
+        List<AvatarBDLibraryFunction> llist = getFullLibraryFunctionList();
         for (AvatarBDLibraryFunction b : llist) {
             if (b.getFunctionName().compareTo(name) == 0) {
                 return true;
@@ -1267,12 +1275,12 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return false;
     }
 
-
+    @Override
     public int getDefaultConnector() {
         return TGComponentManager.AVATARBD_PORT_CONNECTOR;
     }
 
-    public LinkedList<TAttribute> getAttributeList() {
+    public List<TAttribute> getAttributeList() {
         return this.myAttributes;
     }
 
@@ -1287,54 +1295,54 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         this.myAttributes.add(ta);
     }
 
-    public LinkedList<AvatarMethod> getMethodList() {
+    public List<AvatarMethod> getMethodList() {
         return this.myMethods;
     }
 
-    public LinkedList<AvatarSignal> getSignalList() {
+    public List<AvatarSignal> getSignalList() {
         return this.mySignals;
     }
 
-    public LinkedList<AvatarSignal> getOutSignalList() {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>();
+    public List<AvatarSignal> getOutSignalList() {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal>();
         for (AvatarSignal s : this.mySignals)
             if (s.getInOut() == AvatarSignal.OUT)
                 v.add(s);
         return v;
     }
 
-    public LinkedList<AvatarSignal> getInSignalList() {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>();
+    public List<AvatarSignal> getInSignalList() {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal>();
         for (AvatarSignal s : this.mySignals)
             if (s.getInOut() == AvatarSignal.IN)
                 v.add(s);
         return v;
     }
 
-    public LinkedList<AvatarMethod> getAllMethodList() {
+    public List<AvatarMethod> getAllMethodList() {
         if (getFather() == null) {
             return this.myMethods;
         }
 
-        LinkedList<AvatarMethod> v = new LinkedList<AvatarMethod>();
+        List<AvatarMethod> v = new LinkedList<AvatarMethod>();
         v.addAll(this.myMethods);
         v.addAll(((AvatarBDBlock) getFather()).getAllMethodList());
         return v;
     }
 
-    public LinkedList<AvatarSignal> getAllSignalList() {
+    public List<AvatarSignal> getAllSignalList() {
         if (getFather() == null) {
             return this.mySignals;
         }
 
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal>();
+        List<AvatarSignal> v = new LinkedList<AvatarSignal>();
         v.addAll(this.mySignals);
         v.addAll(((AvatarBDBlock) getFather()).getAllSignalList());
         return v;
     }
 
-    public LinkedList<String> getAllTimerList() {
-        LinkedList<String> v = new LinkedList<String>();
+    public List<String> getAllTimerList() {
+        List<String> v = new LinkedList<String>();
 
         for (TAttribute a : this.myAttributes)
             if (a.getType() == TAttribute.TIMER)
@@ -1349,19 +1357,18 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return null;
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableSignals() {
+    public List<AvatarSignal> getListOfAvailableSignals() {
         return ((AvatarBDPanel) (tdp)).getListOfAvailableSignals(this);
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableOutSignals() {
+    public List<AvatarSignal> getListOfAvailableOutSignals() {
         return ((AvatarBDPanel) (tdp)).getListOfAvailableOutSignals(this);
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableInSignals() {
+    public List<AvatarSignal> getListOfAvailableInSignals() {
         return ((AvatarBDPanel) (tdp)).getListOfAvailableInSignals(this);
     }
 
-
     // _id may contain the full signal
     public AvatarSignal getSignalNameBySignalDef(String _id) {
         int index0 = _id.indexOf('(');
@@ -1494,6 +1501,7 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return -1;
     }
 
+    @Override
     public ImageIcon getImageIcon() {
         return myImageIcon;
     }
@@ -1507,11 +1515,11 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         return this.getBlockName();
     }
 
+    @Override
     public String toString() {
         return "Block: " + getValue();
     }
 
-
     public String getAttributes() {
         String attr = "";
         for (TAttribute a: myAttributes) {
@@ -1525,9 +1533,4 @@ public class AvatarBDBlock extends TGCScalableWithInternalComponent implements S
         }
         return attr;
     }
-
-
-
-
-
 }
diff --git a/src/main/java/ui/avatarbd/AvatarBDPanel.java b/src/main/java/ui/avatarbd/AvatarBDPanel.java
index 9d2e308199a6a3fb64df1decaaaf1d983904d3c1..70c04c57584998067fb3580f8e379caa8d44142b 100644
--- a/src/main/java/ui/avatarbd/AvatarBDPanel.java
+++ b/src/main/java/ui/avatarbd/AvatarBDPanel.java
@@ -36,12 +36,8 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarbd;
 
-
 import myutil.Conversion;
 import myutil.TraceManager;
 import org.w3c.dom.Element;
@@ -61,7 +57,8 @@ import java.util.*;
    * @author Ludovic APVRILLE
  */
 public class AvatarBDPanel extends TDiagramPanel {
-    private LinkedList<AvatarBDStateMachineOwner> validated, ignored;
+    
+	private List<AvatarBDStateMachineOwner> validated, ignored;
     private String val = null, ign = null;
     private boolean optimized = true;
 
@@ -78,6 +75,7 @@ public class AvatarBDPanel extends TDiagramPanel {
           addMouseMotionListener(tdmm);*/
     }
 
+    @Override
     public boolean actionOnDoubleClick(TGComponent tgc) {
         //
         if (tgc instanceof AvatarBDBlock) {
@@ -94,6 +92,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public boolean actionOnAdd(TGComponent tgc) {
         if (tgc instanceof AvatarBDBlock) {
             AvatarBDBlock abdb = (AvatarBDBlock)(tgc);
@@ -109,12 +108,13 @@ public class AvatarBDPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public boolean actionOnRemove(TGComponent tgc) {
         if (tgc instanceof AvatarBDStateMachineOwner) {
             AvatarBDStateMachineOwner abdb = (AvatarBDStateMachineOwner) tgc;
             this.mgui.removeAvatarBlock (tp, abdb.getOwnerName());
             if (tgc instanceof AvatarBDBlock) {
-                LinkedList<AvatarBDBlock> list  = ((AvatarBDBlock) abdb).getFullBlockList();
+                List<AvatarBDBlock> list  = ((AvatarBDBlock) abdb).getFullBlockList();
                 for(AvatarBDBlock b: list)
                     mgui.removeAvatarBlock(tp, b.getBlockName());
 
@@ -130,44 +130,46 @@ public class AvatarBDPanel extends TDiagramPanel {
 
     public void updateSignalAttachement(AvatarBDBlock _b, AvatarBDPortConnector _conn) {
 
-	
-	// Set all signals of B as non connected
-	_b.setSignalsAsNonAttached();
-	
-	
-	Iterator iterator = getComponentList().listIterator();
-	while(iterator.hasNext()) {
-            TGComponent tgc = (TGComponent)(iterator.next());
-            if (tgc instanceof AvatarBDPortConnector) {
-		AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
-                AvatarBDBlock block1 = port.getAvatarBDBlock1();
-                AvatarBDBlock block2 = port.getAvatarBDBlock2();
-		if ((block1 != null) && (block2 != null)) {
-		    if ((_b == block1) || (_b == block2)) {
-			//TraceManager.addDev("Relation found");
-			LinkedList<String> l;
-			if (_b == block1) {
-			    l = port.getListOfSignalsOrigin();
-			} else {
-			    l = port.getListOfSignalsDestination();
-			}
-
-			for(String name: l) {
-			    name = AvatarSignal.getSignalNameFromFullSignalString(name);
-			    //TraceManager.addDev("Searching for " + name + " in block " + _b);
-			    AvatarSignal sig = _b.getAvatarSignalFromName(name);
-			    if (sig != null) {
-				//TraceManager.addDev("Sig " + name + " is attached to a relation");
-				sig.attachedToARelation = true;
-			    }
-			}
-		    }
-		}
-	    }
-	}
-    }
-    
-
+    	// Set all signals of B as non connected
+    	_b.setSignalsAsNonAttached();
+
+    	Iterator<TGComponent> iterator = getComponentList().listIterator();
+
+    	while(iterator.hasNext()) {
+    		TGComponent tgc = iterator.next();
+    		
+    		if (tgc instanceof AvatarBDPortConnector) {
+    			AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
+    			AvatarBDBlock block1 = port.getAvatarBDBlock1();
+    			AvatarBDBlock block2 = port.getAvatarBDBlock2();
+    			
+    			if ((block1 != null) && (block2 != null)) {
+    				if ((_b == block1) || (_b == block2)) {
+    					//TraceManager.addDev("Relation found");
+    					List<String> l;
+    					
+    					if (_b == block1) {
+    						l = port.getListOfSignalsOrigin();
+    					} else {
+    						l = port.getListOfSignalsDestination();
+    					}
+
+    					for(String name: l) {
+    						name = AvatarSignal.getSignalNameFromFullSignalString(name);
+    						//TraceManager.addDev("Searching for " + name + " in block " + _b);
+    						AvatarSignal sig = _b.getAvatarSignalFromName(name);
+    						if (sig != null) {
+    							//TraceManager.addDev("Sig " + name + " is attached to a relation");
+    							sig.attachedToARelation = true;
+    						}
+    					}
+    				}
+    			}
+    		}
+    	}
+    }
+
+    @Override
     public boolean actionOnValueChanged(TGComponent tgc) {
         if (tgc instanceof AvatarBDBlock) {
             //updateAllSignalsOnConnectors();
@@ -240,7 +242,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     public String displayParam() {
         String s = "";
         String [] tmp =  Conversion.wrapText(mainCode);
-        String tmps;
+        //String tmps;
         int i;
 
         for(i=0; i<tmp.length; i++) {
@@ -369,10 +371,10 @@ public class AvatarBDPanel extends TDiagramPanel {
             }
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> ();
+    public List<AvatarSignal> getListOfAvailableSignals(AvatarBDBlock _block) {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal> ();
 
-        LinkedList<AvatarSignal> listOfBlock = _block.getSignalList();
+        List<AvatarSignal> listOfBlock = _block.getSignalList();
         if (listOfBlock.size() == 0)
             return v;
 
@@ -382,11 +384,11 @@ public class AvatarBDPanel extends TDiagramPanel {
             if (tgc instanceof AvatarBDPortConnector) {
                 AvatarBDPortConnector port = (AvatarBDPortConnector) tgc;
                 if (port.getAvatarBDBlock1() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsOrigin();
+                    List<String> ll = port.getListOfSignalsOrigin();
                     removeSignals(v, ll);
                 }
                 if (port.getAvatarBDBlock2() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsDestination();
+                    List<String> ll = port.getListOfSignalsDestination();
                     removeSignals(v, ll);
                 }
             }
@@ -394,10 +396,10 @@ public class AvatarBDPanel extends TDiagramPanel {
         return v;
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> ();
+    public List<AvatarSignal> getListOfAvailableOutSignals (AvatarBDBlock _block) {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal> ();
 
-        LinkedList<AvatarSignal> listOfBlock = _block.getOutSignalList();
+        List<AvatarSignal> listOfBlock = _block.getOutSignalList();
         if (listOfBlock.size() == 0)
             return v;
 
@@ -407,11 +409,11 @@ public class AvatarBDPanel extends TDiagramPanel {
             if (tgc instanceof AvatarBDPortConnector) {
                 AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
                 if (port.getAvatarBDBlock1() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsOrigin();
+                    List<String> ll = port.getListOfSignalsOrigin();
                     removeSignals(v, ll);
                 }
                 if (port.getAvatarBDBlock2() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsDestination();
+                    List<String> ll = port.getListOfSignalsDestination();
                     removeSignals(v, ll);
                 }
             }
@@ -419,10 +421,10 @@ public class AvatarBDPanel extends TDiagramPanel {
         return v;
     }
 
-    public LinkedList<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) {
-        LinkedList<AvatarSignal> v = new LinkedList<AvatarSignal> ();
+    public List<AvatarSignal> getListOfAvailableInSignals(AvatarBDBlock _block) {
+        List<AvatarSignal> v = new LinkedList<AvatarSignal> ();
 
-        LinkedList<AvatarSignal> listOfBlock = _block.getInSignalList();
+        List<AvatarSignal> listOfBlock = _block.getInSignalList();
         if (listOfBlock.size() == 0)
             return v;
 
@@ -432,11 +434,11 @@ public class AvatarBDPanel extends TDiagramPanel {
             if (tgc instanceof AvatarBDPortConnector) {
                 AvatarBDPortConnector port = (AvatarBDPortConnector)tgc;
                 if (port.getAvatarBDBlock1() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsOrigin();
+                    List<String> ll = port.getListOfSignalsOrigin();
                     removeSignals(v, ll);
                 }
                 if (port.getAvatarBDBlock2() == _block) {
-                    LinkedList<String> ll = port.getListOfSignalsDestination();
+                    List<String> ll = port.getListOfSignalsDestination();
                     removeSignals(v, ll);
                 }
             }
@@ -445,7 +447,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     }
 
     // Remove AvatarSignals of v which name is provided in list
-    private static void removeSignals(List<AvatarSignal> v, LinkedList<String> list) {
+    private static void removeSignals(List<AvatarSignal> v, List<String> list) {
         for(String s: list) {
             Iterator<AvatarSignal> iterator = v.iterator ();
             while (iterator.hasNext ()) {
@@ -458,8 +460,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         }
     }
 
-	public HashMap<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){
-		HashMap<String,List<String>> blockStringMap = new HashMap<String, List<String>>();
+	public Map<String, List<String>> getBlockStrings(boolean addAttributes, boolean addStates, boolean addSignals){
+		Map<String,List<String>> blockStringMap = new HashMap<String, List<String>>();
 		for (AvatarBDBlock block: getFullBlockList()){
 			List<String> strs = new ArrayList<String>();
 			if (addAttributes){
@@ -481,8 +483,8 @@ public class AvatarBDPanel extends TDiagramPanel {
 		return blockStringMap;
 	}
 
-    public LinkedList<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() {
-        LinkedList<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>();
+    public List<AvatarBDStateMachineOwner> getFullStateMachineOwnerList() {
+        List<AvatarBDStateMachineOwner> list = new LinkedList<AvatarBDStateMachineOwner>();
 
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDStateMachineOwner) {
@@ -496,8 +498,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return list;
     }
 
-    public LinkedList<AvatarBDBlock> getFullBlockList () {
-        LinkedList<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> ();
+    public List<AvatarBDBlock> getFullBlockList () {
+        List<AvatarBDBlock> list = new LinkedList<AvatarBDBlock> ();
 
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDBlock) {
@@ -538,8 +540,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getFullLibraryFunctionList () {
-        LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
+    public List<AvatarBDLibraryFunction> getFullLibraryFunctionList () {
+        List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
 
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDLibraryFunction)
@@ -548,8 +550,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return list;
     }
 
-    public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) {
-        LinkedList<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
+    public List<AvatarBDLibraryFunction> getAllLibraryFunctionsForBlock (String _name) {
+        List<AvatarBDLibraryFunction> list = new LinkedList<AvatarBDLibraryFunction> ();
 
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
         {
@@ -561,7 +563,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     }
 
     public TAttribute getAttributeByBlockName(String _blockName, String attributeName) {
-        TAttribute a;
+        //TAttribute a;
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_blockName))
                 return block.getAttributeByName(attributeName);
@@ -569,8 +571,8 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<TAttribute> getAllAttributesOfBlock (String _name) {
-        LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList ();
+    public List<TAttribute> getAllAttributesOfBlock (String _name) {
+        List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList ();
         for(AvatarBDStateMachineOwner block: list)
             if (block.getOwnerName ().equals (_name))
                 return block.getAttributeList ();
@@ -578,7 +580,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return new LinkedList<TAttribute> ();
     }
 
-    public LinkedList<AvatarMethod> getAllMethodsOfBlock(String _name) {
+    public List<AvatarMethod> getAllMethodsOfBlock(String _name) {
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_name))
                 return block.getAllMethodList();
@@ -586,7 +588,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<AvatarSignal> getAllSignalsOfBlock(String _name) {
+    public List<AvatarSignal> getAllSignalsOfBlock(String _name) {
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_name))
                 return block.getAllSignalList();
@@ -594,7 +596,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<String> getAllTimersOfBlock(String _name) {
+    public List<String> getAllTimersOfBlock(String _name) {
         for(AvatarBDStateMachineOwner block: getFullStateMachineOwnerList())
             if (block.getOwnerName().equals (_name))
                 return block.getAllTimerList();
@@ -602,7 +604,7 @@ public class AvatarBDPanel extends TDiagramPanel {
         return null;
     }
 
-    public LinkedList<TAttribute> getAttributesOfDataType(String _name) {
+    public List<TAttribute> getAttributesOfDataType(String _name) {
         for (TGComponent tgc: this.componentList)
             if (tgc instanceof AvatarBDDataType) {
                 AvatarBDDataType adt = (AvatarBDDataType)tgc;
@@ -628,14 +630,14 @@ public class AvatarBDPanel extends TDiagramPanel {
         return mainCode;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getValidated() {
+    public List<AvatarBDStateMachineOwner> getValidated() {
         if ((val != null) && (validated == null)) {
             makeValidated();
         }
         return validated;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getIgnored() {
+    public List<AvatarBDStateMachineOwner> getIgnored() {
         if ((ign != null) && (ignored == null)) {
             makeIgnored();
         }
@@ -646,12 +648,11 @@ public class AvatarBDPanel extends TDiagramPanel {
         return optimized;
     }
 
-
-    public void setValidated(LinkedList<AvatarBDStateMachineOwner> _validated) {
+    public void setValidated( List<AvatarBDStateMachineOwner> _validated) {
         validated = _validated;
     }
 
-    public void setIgnored(LinkedList<AvatarBDStateMachineOwner> _ignored) {
+    public void setIgnored( List<AvatarBDStateMachineOwner> _ignored) {
         ignored = _ignored;
     }
 
@@ -662,7 +663,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     public void makeValidated() {
         TraceManager.addDev("Making validated with val=" + val);
         validated = new LinkedList<AvatarBDStateMachineOwner> ();
-        LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
+        List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
         String tmp;
 
         String split[] = val.split(";");
@@ -683,7 +684,7 @@ public class AvatarBDPanel extends TDiagramPanel {
     public void makeIgnored() {
         TraceManager.addDev("Making ignored with ign=" + val);
         ignored = new LinkedList<AvatarBDStateMachineOwner> ();
-        LinkedList<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
+        List<AvatarBDStateMachineOwner> list = getFullStateMachineOwnerList();
         String tmp;
 
         String split[] = ign.split(";");
diff --git a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java
index e09477549c1f2bbf82e48f49107959bc0e763022..e1b2a7f95f8f55e5f137fe0342a66941900958e8 100644
--- a/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java
+++ b/src/main/java/ui/avatarbd/AvatarBDPerformancePragma.java
@@ -36,7 +36,6 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.avatarbd;
 
 import myutil.Conversion;
@@ -49,10 +48,14 @@ import ui.util.IconManager;
 import ui.window.JDialogPerformancePragma;
 
 import javax.swing.*;
-import java.awt.*;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -66,7 +69,7 @@ import java.util.Map;
 public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalComponent {
 
     protected String[] values;
-    protected LinkedList<String> properties;
+    protected List<String> properties;
     protected int textX = 40;
     protected int textY = 5;
     protected int marginY = 20;
@@ -74,7 +77,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
     protected int limit = 15;
     protected int lockX = 1;
     protected int lockY = 5;
-    public ArrayList<String> syntaxErrors;
+    public List<String> syntaxErrors;
     protected Graphics myg;
 
     protected Color myColor;
@@ -83,7 +86,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
     //    private int maxFontSize = 30;
 //    private int minFontSize = 4;
     private int currentFontSize = -1;
-    private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"};
+   // private final String[] pPragma = {"A[]", "A<>", "E[]", "E<>"};
     public Map<String, String> verifMap = new HashMap<String, String>();
 
     protected Graphics graphics;
@@ -129,10 +132,11 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
         return values;
     }
 
-    public LinkedList<String> getProperties() {
+    public List<String> getProperties() {
         return properties;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
         Font f = g.getFont();
         Font fold = f;
@@ -255,7 +259,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
       }
       }*/
 
-
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
 
@@ -283,6 +287,7 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
         return null;
     }
 
+    @Override
     public void rescale(double scaleFactor) {
         /*dlineHeight = (lineHeight + dlineHeight) / oldScaleFactor * scaleFactor;
           lineHeight = (int)(dlineHeight);
@@ -294,10 +299,12 @@ public class AvatarBDPerformancePragma extends TGCScalableWithoutInternalCompone
         super.rescale(scaleFactor);
     }
 
+    @Override
     public int getType() {
         return TGComponentManager.PERFORMANCE_PRAGMA;
     }
 
+    @Override
     protected String translateExtraParam() {
         if (values == null) {
             makeValue();
diff --git a/src/main/java/ui/avatarbd/AvatarBDPragma.java b/src/main/java/ui/avatarbd/AvatarBDPragma.java
index 7dd4d58ffcd5f8878fcc683c6cc9c7b1d1a121a1..f3b9419132506fd08616b09c0b3bf13eda6e166e 100755
--- a/src/main/java/ui/avatarbd/AvatarBDPragma.java
+++ b/src/main/java/ui/avatarbd/AvatarBDPragma.java
@@ -405,6 +405,7 @@ public class AvatarBDPragma extends TGCScalableWithoutInternalComponent {
 
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         String oldValue = value;
 
diff --git a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java
index f26e17890af344f312123045f944d3c58f91cc74..13b68cefd465fb4d00b24ab12f72c5be5aacfb45 100755
--- a/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java
+++ b/src/main/java/ui/avatarbd/AvatarBDStateMachineOwner.java
@@ -36,19 +36,15 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarbd;
 
+import java.util.List;
+
 import ui.AvatarMethod;
 import ui.AvatarSignal;
 import ui.TAttribute;
 import ui.avatarsmd.AvatarSMDPanel;
 
-import java.util.LinkedList;
-
-
 /**
  * This interface represent block diagram elements that are associated to a state machine.
  * It defines the functions so that a state machine can deal transparently no matter if
@@ -59,14 +55,14 @@ import java.util.LinkedList;
  */
 public interface AvatarBDStateMachineOwner {
 
-    LinkedList<TAttribute> getAttributeList();
-    LinkedList<String> getAllTimerList();
+    List<TAttribute> getAttributeList();
+    List<String> getAllTimerList();
     TAttribute getAttributeByName(String _name);
-    LinkedList<AvatarSignal> getSignalList();
-    LinkedList<AvatarSignal> getAllSignalList();
+    List<AvatarSignal> getSignalList();
+    List<AvatarSignal> getAllSignalList();
     AvatarSignal getSignalNameBySignalDef(String _id);
-    LinkedList<AvatarMethod> getMethodList();
-    LinkedList<AvatarMethod> getAllMethodList();
+    List<AvatarMethod> getMethodList();
+    List<AvatarMethod> getAllMethodList();
 
     String getOwnerName();
     AvatarSMDPanel getAvatarSMDPanel();
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java
index e12766e20c0d422098c0e2144397fe4b36d6d070..127a1e7912df018c2295369764a8ba89dbaa9633 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDConnector.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDConnector.java
@@ -109,7 +109,6 @@ public class AvatarSMDConnector extends TGConnectorWithCommentConnectionPoints i
        }
        }*/
 
-
     public void setTransitionInfo(String guard, String action) {
         AvatarSMDTransitionInfo tgc = (AvatarSMDTransitionInfo) getInternalTGComponent(0);
         if (!guard.isEmpty()) {
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java
index 802ff5f9fcb8764c111a24c4717480b78cbd3163..c4e16b68cd489248aa8f6c8b655aa8559586e5c8 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDExpireTimer.java
@@ -36,22 +36,30 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.geom.Line2D;
+import java.util.List;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarTimer;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-
 /**
    * Class AvatarSMDExpireTimer
    * Action of waiting for the expiration of a timer
@@ -97,8 +105,8 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
         myImageIcon = IconManager.imgic904;
     }
 
+    @Override
     public void internalDrawing(Graphics g) {
-
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX + linebreak);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -106,7 +114,6 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
             width = w1;            //updateConnectingPoints();
         }
 
-
         if (stateOfError > 0)  {
             Color c = g.getColor();
             switch(stateOfError) {
@@ -170,6 +177,7 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
 
     }
 
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) {
             return this;
@@ -182,15 +190,16 @@ public class AvatarSMDExpireTimer extends AvatarSMDBasicComponent implements Bas
         return null;
     }
 
-    public void makeValue() {
-    }
+//    public void makeValue() {
+//    }
 
     public String getTimerName() {
         return AvatarSignal.getValue(value, 0);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-        LinkedList<String> timers = tdp.getMGUI().getAllTimers();
+        List<String> timers = tdp.getMGUI().getAllTimers();
         TraceManager.addDev("Nb of timers:" + timers.size());
 
         JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Timer expiration",  getTimerName(), "", timers, false);
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java
index ad21ef15f3329e08c73cbf48bbf0b8460cb0f9cc..97637c476049338a64d8c0ad4dda966fccab62ad 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDReceiveSignal.java
@@ -36,29 +36,36 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.geom.Line2D;
+import java.util.List;
+import java.util.Vector;
+import java.util.concurrent.ConcurrentHashMap;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
-import ui.util.IconManager;
-import ui.window.JDialogAvatarSignal;
-
-import java.util.concurrent.ConcurrentHashMap;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Vector;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.LinkedReference;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.avatarrd.AvatarRDRequirement;
-
 import ui.tmlad.TMLADReadChannel;
+import ui.util.IconManager;
+import ui.window.JDialogAvatarSignal;
 /**
  * Class AvatarSMDReceiveSignal
  * Action of receiving a signal
@@ -112,11 +119,12 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 		//latencyVals.put("sendChannel: sensorData", "15");
     }
     
-
 	public void addLatency(String name, String num){
 		latencyVals.put(name,num);
 	}
-    public void internalDrawing(Graphics g) {
+    
+	@Override
+	public void internalDrawing(Graphics g) {
 		
         int w  = g.getFontMetrics().stringWidth(value + textX1);
         int w1 = Math.max(minWidth, w + 2 * textX);
@@ -360,14 +368,14 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
         return nParam;
     }*/
 	
-    
+
+	@Override
     public boolean editOndoubleClick(JFrame frame) {
-    //	
-		LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
+		List<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
 		TraceManager.addDev("Nb of signals:" + signals.size());
 		
 
-		ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
+		List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
 		Vector<TGComponent> refs = new Vector<TGComponent>();
 		for (TGComponent req: tdp.getMGUI().getAllRequirements()){
             //
@@ -380,6 +388,7 @@ public class AvatarSMDReceiveSignal extends AvatarSMDBasicComponent implements C
 				refs.add(tg);
 			}
 		}
+		
 		JDialogAvatarSignal jdas = new JDialogAvatarSignal(frame, "Setting receive signal",  value, signals, false, reference, refs);
 		//jdas.setSize(350, 300);
         GraphicLib.centerOnParent(jdas, 550, 300);
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java
index 2498e1f818897605d529e1d8b496d6fed5314480..a65555c45fd797ff542ecf7cc4cf58f125113892 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDResetTimer.java
@@ -36,22 +36,30 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.geom.Line2D;
+import java.util.List;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarTimer;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-
 /**
  * Class AvatarSMDResetTimer
  * Action of resetting a timer
@@ -166,6 +174,7 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
 		
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) {
             return this;
@@ -178,15 +187,16 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
         return null;
     }
     
-    public void makeValue() {
-    }
+//    public void makeValue() {
+//    }
     
     public String getTimerName() {
         return AvatarSignal.getValue(value, 0);
     }
     
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-		LinkedList<String> timers = tdp.getMGUI().getAllTimers();
+		List<String> timers = tdp.getMGUI().getAllTimers();
 		TraceManager.addDev("Nb of timers:" + timers.size());
 		
 		JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Reset timer",  getTimerName(), "", timers, false);
@@ -212,20 +222,19 @@ public class AvatarSMDResetTimer extends AvatarSMDBasicComponent implements Basi
 		value = "reset(" + val0 + ")";
 		
 		return true;
-         
     }
-    
-  
-    
 
+    @Override
     public int getType() {
         return TGComponentManager.AVATARSMD_RESET_TIMER;
     }
     
-     public int getDefaultConnector() {
-      return TGComponentManager.AVATARSMD_CONNECTOR;
+    @Override
+    public int getDefaultConnector() {
+    	return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 	
+    @Override
 	public void setStateAction(int _stateAction) {
 		stateOfError = _stateAction;
 	}
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java
index b9000b58a5f4d83d6ed1a3a2663759589615c420..55fd6ffca7a87bdaea11567e708ca8a9bf6eb834 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDSendSignal.java
@@ -36,27 +36,35 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.avatarsmd;
 
-import myutil.GraphicLib;
-import ui.*;
-import ui.util.IconManager;
-import ui.window.JDialogAvatarSignal;
-
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Color;
+import java.awt.Graphics;
 import java.awt.geom.Line2D;
-import java.util.LinkedList;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.List;
 import java.util.Vector;
-import ui.avatarrd.AvatarRDRequirement;
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
+import myutil.GraphicLib;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.CheckableAccessibility;
+import ui.CheckableLatency;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.LinkedReference;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
+import ui.avatarrd.AvatarRDRequirement;
 import ui.tmlad.TMLADWriteChannel;
+import ui.util.IconManager;
+import ui.window.JDialogAvatarSignal;
 /**
    * Class AvatarSMDSendSignal
    * Action of sending a signal
@@ -105,11 +113,13 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
         myImageIcon = IconManager.imgic904;
 		latencyVals = new ConcurrentHashMap<String, String>();
     }
+    
 	public void addLatency(String name, String num){
 		latencyVals.put(name,num);
 	}
+	
+	@Override
     public void internalDrawing(Graphics g) {
-
         int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
@@ -289,6 +299,7 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
 		}
 	}
 
+	@Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -353,10 +364,11 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
         return AvatarSignal.getValue(value, _index);
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-        LinkedList<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
+        List<AvatarSignal> signals = tdp.getMGUI().getAllSignals();
         //TraceManager.addDev("Nb of signals:" + signals.size());
-		ArrayList<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
+		List<TGComponent> comps = tdp.getMGUI().getAllLatencyChecks();
 		
 		Vector<TGComponent> refs = new Vector<TGComponent>();
 		for (TGComponent req: tdp.getMGUI().getAllRequirements()){
@@ -466,15 +478,17 @@ public class AvatarSMDSendSignal extends AvatarSMDBasicComponent implements Chec
       makeValue();
       }*/
 
-
+	@Override
     public int getType() {
         return TGComponentManager.AVATARSMD_SEND_SIGNAL;
     }
 
+	@Override
     public int getDefaultConnector() {
         return TGComponentManager.AVATARSMD_CONNECTOR;
     }
 
+	@Override
     public void setStateAction(int _stateAction) {
         stateOfError = _stateAction;
     }
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java
index ee71ee48658042a58015a793021c627d9331cc1f..952f1039cc9a7b8a54e77d55bb4c820ed35f50c1 100644
--- a/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDSetTimer.java
@@ -36,22 +36,30 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.avatarsmd;
 
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.geom.Line2D;
+import java.util.List;
 
-
-package ui.avatarsmd;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
 
 import myutil.GraphicLib;
 import myutil.TraceManager;
-import ui.*;
+import ui.AvatarSignal;
+import ui.BasicErrorHighlight;
+import ui.ColorManager;
+import ui.ErrorHighlight;
+import ui.PartOfInvariant;
+import ui.TDiagramPanel;
+import ui.TGComponent;
+import ui.TGComponentManager;
+import ui.TGConnectingPoint;
 import ui.util.IconManager;
 import ui.window.JDialogAvatarTimer;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.util.LinkedList;
-
 /**
  * Class AvatarSMDSetTimer
  * Action of setting a timer
@@ -97,9 +105,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
         myImageIcon = IconManager.imgic904;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
-		
-        int w  = g.getFontMetrics().stringWidth(value);
+		int w  = g.getFontMetrics().stringWidth(value);
         int w1 = Math.max(minWidth, w + 2 * textX);
         if ((w1 != width) & (!tdp.isScaled())) {
             setCd(x + width/2 - w1/2, y);
@@ -168,6 +176,7 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
 		
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width + hourglassSpace + hourglassWidth, height)) {
             return this;
@@ -180,8 +189,8 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
         return null;
     }
     
-    public void makeValue() {
-    }
+//    public void makeValue() {
+//    }
     
     public String getTimerName() {
         return AvatarSignal.getValue(value, 0);
@@ -191,8 +200,9 @@ public class AvatarSMDSetTimer extends AvatarSMDBasicComponent implements BasicE
 		return AvatarSignal.getValue(value, 1);
 	}
     
+	@Override
     public boolean editOndoubleClick(JFrame frame) {
-		LinkedList<String> timers = tdp.getMGUI().getAllTimers();
+		List<String> timers = tdp.getMGUI().getAllTimers();
 		TraceManager.addDev("Nb of timers:" + timers.size());
 		
 		JDialogAvatarTimer jdat = new JDialogAvatarTimer(frame, "Setting timer set",  getTimerName(), getTimerValue(), timers, true);
diff --git a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java
index b4652293edf1251cbeff112edf513d5ed2403446..2b06c17854421475e1f395acda02505c9a1b3264 100755
--- a/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java
+++ b/src/main/java/ui/avatarsmd/AvatarSMDTransitionInfo.java
@@ -49,11 +49,10 @@ import ui.util.IconManager;
 import ui.window.JDialogAvatarTransition;
 
 import javax.swing.*;
-import java.awt.*;
-import java.util.LinkedList;
-import java.util.Vector;
 
-//import java.awt.geom.*;
+import java.awt.Graphics;
+import java.util.List;
+import java.util.Vector;
 
 /**
  * Class AvatarSMDTransitionInfo
@@ -69,7 +68,6 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
 //    private static String FILE_INFO = "(user files specified)";
     //   private static String CODE_INFO = "(user code specified)";
 
-
     protected String guard;
     protected String afterMin;
     protected String afterMax;
@@ -279,13 +277,15 @@ public class AvatarSMDTransitionInfo extends TGCWithoutInternalComponent impleme
         return null;
     }
 
+    @Override
     public boolean isInRectangle(int x1, int y1, int width, int height) {
         return !((getX() < x1) || (getY() < y1) || ((getX() + this.width) > (x1 + width)) || ((getY() + this.height) > (y1 + height)));
     }
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
-        LinkedList<TAttribute> attributes = tdp.getMGUI().getAllAttributes();
-        LinkedList<AvatarMethod> methods = tdp.getMGUI().getAllMethods();
+        List<TAttribute> attributes = tdp.getMGUI().getAllAttributes();
+        List<AvatarMethod> methods = tdp.getMGUI().getAllMethods();
         JDialogAvatarTransition jdat = new JDialogAvatarTransition(frame, "Setting transition parameters", guard, afterMin, afterMax, computeMin, computeMax, listOfActions, attributes, methods, filesToInclude, codeToInclude, probability);
         //  jdat.setSize(600, 550);
         GraphicLib.centerOnParent(jdat, 600, 550);
diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java
index ca6785b0a23c9f45212c3f2903e5d5f9dff58346..c259e8b36dfca8252615d12c2b33cae4ccbca318 100755
--- a/src/main/java/ui/util/DefaultText.java
+++ b/src/main/java/ui/util/DefaultText.java
@@ -50,8 +50,8 @@ package ui.util;
  */
 public class DefaultText {
 
-    public static String BUILD = "12707";
-    public static String DATE = "2018/07/23 16:51:06 CET";
+    public static String BUILD = "12714";
+    public static String DATE = "2018/07/30 02:01:35 CET";
 
     public static StringBuffer sbAbout = makeAbout();
 
diff --git a/src/main/java/ui/window/JDialogAvatarBlock.java b/src/main/java/ui/window/JDialogAvatarBlock.java
index 1990712faa3069c10c8a83a1d3c92243aceeca70..c3bdb5e3252b86d5d92c10d2d02e5006743acb75 100644
--- a/src/main/java/ui/window/JDialogAvatarBlock.java
+++ b/src/main/java/ui/window/JDialogAvatarBlock.java
@@ -48,10 +48,19 @@ import ui.TAttribute;
 import javax.swing.*;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -64,10 +73,10 @@ import java.util.LinkedList;
  */
 public class JDialogAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener {
 
-    private LinkedList<TAttribute> attributes, attributesPar, forbidden;
-    private LinkedList<Boolean> initValues;
-    private LinkedList<AvatarMethod> methods, methodsPar;
-    private LinkedList<AvatarSignal> signals, signalsPar;
+    private List<TAttribute> attributes, attributesPar, forbidden;
+    private List<Boolean> initValues;
+    private List<AvatarMethod> methods, methodsPar;
+    private List<AvatarSignal> signals, signalsPar;
     private boolean checkKeyword, checkJavaKeyword;
 
     private boolean cancelled = true;
@@ -122,7 +131,7 @@ public class JDialogAvatarBlock extends JDialogBase implements ActionListener, L
     /**
      * Creates new form
      */
-    public JDialogAvatarBlock(LinkedList<TAttribute> _attributes, LinkedList<AvatarMethod> _methods, LinkedList<AvatarSignal> _signals, LinkedList<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) {
+    public JDialogAvatarBlock( List<TAttribute> _attributes, List<AvatarMethod> _methods, List<AvatarSignal> _signals, List<TAttribute> _forbidden, Frame f, String title, String attrib, int _tab, String[] _globalCode, boolean _hasGlobalCode, String _mainCode) {
         super(f, title, true);
         frame = f;
         attributesPar = _attributes;
diff --git a/src/main/java/ui/window/JDialogAvatarSignal.java b/src/main/java/ui/window/JDialogAvatarSignal.java
index c463100117e717db09c6518b180c254d5dfd0185..555e36aa46bb837cc0978c7e3681ec66cfece14d 100644
--- a/src/main/java/ui/window/JDialogAvatarSignal.java
+++ b/src/main/java/ui/window/JDialogAvatarSignal.java
@@ -38,19 +38,29 @@
 
 package ui.window;
 
-import ui.AvatarSignal;
-import ui.util.IconManager;
-import ui.TGComponent;
-import myutil.TraceManager;
-
-import javax.swing.*;
-import java.awt.*;
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Vector;
 
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import myutil.TraceManager;
+import ui.AvatarSignal;
+import ui.TGComponent;
+
 
 /**
  * Class JDialogAvatarSignal
@@ -61,8 +71,8 @@ import java.util.Vector;
  */
 public class JDialogAvatarSignal extends JDialogBase implements ActionListener  {
 
-    private LinkedList<AvatarSignal> signals, realSignals;
-    private LinkedList<String> showSignals;
+    private List<AvatarSignal> signals, realSignals;
+    private List<String> showSignals;
     private String currentSignal;
     private boolean isOut;
 	
@@ -81,7 +91,7 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
     private JTextField signal;
 
     /** Creates new form  */
-    public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, LinkedList<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) {
+    public JDialogAvatarSignal(Frame _f, String _title, String _currentSignal, List<AvatarSignal> _signals, boolean _isOut, TGComponent _reference, Vector<TGComponent> _refs) {
 
         super(_f, _title, true);
 
@@ -100,7 +110,6 @@ public class JDialogAvatarSignal extends JDialogBase implements ActionListener
         pack();
     }
 
-
     private void makeSignals() {
         showSignals = new LinkedList<String> ();
         realSignals = new LinkedList<AvatarSignal> ();
diff --git a/src/main/java/ui/window/JDialogAvatarTimer.java b/src/main/java/ui/window/JDialogAvatarTimer.java
index 845172d98b277dfb7457c85edb30ffb0082b84ec..913b268c5aa7a90f37e8792226fcf92f1e282e97 100644
--- a/src/main/java/ui/window/JDialogAvatarTimer.java
+++ b/src/main/java/ui/window/JDialogAvatarTimer.java
@@ -36,18 +36,25 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
-
-
 package ui.window;
 
-import ui.util.IconManager;
-
-import javax.swing.*;
-import java.awt.*;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.util.LinkedList;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.border.TitledBorder;
 
 /**
  * Class JDialogAvatarTimer
@@ -58,7 +65,7 @@ import java.util.LinkedList;
  */
 public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
 
-    private LinkedList<String> timers;
+    private List<String> timers;
 
     private boolean cancelled = true;
     private JPanel panel1, panel2;
@@ -77,8 +84,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
 
 
     /** Creates new form  */
-    public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, LinkedList<String> _timers, boolean _setValue) {
-
+    public JDialogAvatarTimer(Frame _f, String _title, String _timer, String _value, List<String> _timers, boolean _setValue) {
         super(_f, _title, true);
 
         timers = _timers;
@@ -87,13 +93,13 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
         setValue = _setValue;
 
         initComponents();
-        myInitComponents();
+     //   myInitComponents();
         pack();
     }
-
-
-    private void myInitComponents() {
-    }
+//
+//
+//    private void myInitComponents() {
+//    }
 
     private void initComponents() {
         Container c = getContentPane();
@@ -102,7 +108,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
         GridBagLayout gridbag2 = new GridBagLayout();
         GridBagConstraints c0 = new GridBagConstraints();
         GridBagConstraints c1 = new GridBagConstraints();
-        GridBagConstraints c2 = new GridBagConstraints();
+        //GridBagConstraints c2 = new GridBagConstraints();
 
         setFont(new Font("Helvetica", Font.PLAIN, 14));
         c.setLayout(gridbag0);
@@ -112,7 +118,7 @@ public class JDialogAvatarTimer extends JDialogBase implements ActionListener  {
         panel1 = new JPanel();
         panel1.setLayout(gridbag1);
 
-        panel1.setBorder(new javax.swing.border.TitledBorder("Timer"));
+        panel1.setBorder(new TitledBorder("Timer"));
 
         panel1.setPreferredSize(new Dimension(300, 150));
 
diff --git a/src/main/java/ui/window/JDialogAvatarTransition.java b/src/main/java/ui/window/JDialogAvatarTransition.java
index fa6a4772183309ec845df40fff2b1dd71a851c19..e1847f538c9fe58a0ef19c27796859521625af6b 100644
--- a/src/main/java/ui/window/JDialogAvatarTransition.java
+++ b/src/main/java/ui/window/JDialogAvatarTransition.java
@@ -36,24 +36,35 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.window;
 
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.List;
+import java.util.Vector;
 
-
-package ui.window;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
 
 import myutil.Conversion;
 import myutil.GraphicLib;
 import ui.AvatarMethod;
-import ui.util.IconManager;
 import ui.TAttribute;
 
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.LinkedList;
-import java.util.Vector;
-
 /**
    * Class JDialogAvatarTransition
    * Dialog for managing transitions between states
@@ -65,8 +76,8 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
 
     private Vector<String> actions;
     private String guard, afterMin, afterMax, computeMin, computeMax, probability;
-    private LinkedList<TAttribute> myAttributes;
-    private LinkedList<AvatarMethod> myMethods;
+    private List<TAttribute> myAttributes;
+    private List<AvatarMethod> myMethods;
     private Vector<String> allElements, insertElements;
 
     protected String [] filesToInclude;
@@ -91,7 +102,7 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
     // arrayDelay: [0] -> minDelay ; [1] -> maxDelay
     public JDialogAvatarTransition(Frame _f, String _title, String _guard, String _afterMin, String _afterMax,
 								   String _computeMin, String _computeMax, Vector<String> _actions,
-								   LinkedList<TAttribute> _myAttributes, LinkedList<AvatarMethod> _myMethods,
+								   List<TAttribute> _myAttributes, List<AvatarMethod> _myMethods,
 								   String[] _filesToInclude, String[] _codeToInclude, String _probability) {
 
         super(_f, _title, true);
@@ -407,5 +418,4 @@ public class JDialogAvatarTransition extends JDialogBase implements ActionListen
     public String[] getCodeToInclude() {
         return codeToInclude;
     }
-
 }
diff --git a/src/main/java/ui/window/JDialogModelChecking.java b/src/main/java/ui/window/JDialogModelChecking.java
index 93fb37d7bb7f70746e6a739e717050895e5ebfe7..c6978e3a9030df76deb3dbdf9d500f2db7036fee 100644
--- a/src/main/java/ui/window/JDialogModelChecking.java
+++ b/src/main/java/ui/window/JDialogModelChecking.java
@@ -46,11 +46,20 @@ import ui.util.IconManager;
 import javax.swing.*;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 
 /**
  * Class JDialogModelChecking
@@ -61,10 +70,10 @@ import java.util.LinkedList;
  * @version 1.0 13/12/2003
  */
 public class JDialogModelChecking extends JDialogBase implements ActionListener, ListSelectionListener {
-    public static java.util.List<TClassInterface> validated, ignored;
+    public static List<TClassInterface> validated, ignored;
     private static boolean overideSyntaxChecking = false;
 
-    private java.util.List<TClassInterface> val, ign, back;
+    private List<TClassInterface> val, ign, back;
 
     //subpanels
     private JPanel panel1, panel2, panel3, panel4, panel5, panel6;
@@ -79,7 +88,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
     /**
      * Creates new form
      */
-    public JDialogModelChecking(Frame f, LinkedList<TClassInterface> _back, java.util.List<TGComponent> componentList, String title) {
+    public JDialogModelChecking(Frame f, List<TClassInterface> _back, List<TGComponent> componentList, String title) {
         super(f, title, true);
 
         back = _back;
@@ -101,8 +110,8 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
         pack();
     }
 
-    private java.util.List<TClassInterface> makeNewVal(java.util.List<TGComponent> list) {
-        java.util.List<TClassInterface> v = new LinkedList<TClassInterface>();
+    private List<TClassInterface> makeNewVal(List<TGComponent> list) {
+        List<TClassInterface> v = new LinkedList<TClassInterface>();
 
         for (TGComponent tgc : list)
             if (tgc instanceof TClassInterface)
@@ -111,7 +120,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
         return v;
     }
 
-    private void checkTClasses(java.util.List<TClassInterface> tobeChecked, java.util.List<TGComponent> source) {
+    private void checkTClasses( List<TClassInterface> tobeChecked, List<TGComponent> source) {
         Iterator<TClassInterface> iter = tobeChecked.iterator();
         while (iter.hasNext()) {
             TClassInterface t = iter.next();
@@ -120,7 +129,7 @@ public class JDialogModelChecking extends JDialogBase implements ActionListener,
         }
     }
 
-    public void addNewTclasses(java.util.List<TClassInterface> added, java.util.List<TGComponent> source, java.util.List<TClassInterface> notSource) {
+    public void addNewTclasses(List<TClassInterface> added, List<TGComponent> source, List<TClassInterface> notSource) {
         for (TGComponent tgc : source)
             if ((tgc instanceof TClassInterface) && (!added.contains(tgc)) && (!notSource.contains(tgc)))
                 added.add((TClassInterface) tgc);
diff --git a/src/main/java/ui/window/JDialogPerformancePragma.java b/src/main/java/ui/window/JDialogPerformancePragma.java
index ab990ef7b29119639f6a49adc47bab2a43b86b98..f204f13efeeb6258616bf32f9daf83ccac701125 100644
--- a/src/main/java/ui/window/JDialogPerformancePragma.java
+++ b/src/main/java/ui/window/JDialogPerformancePragma.java
@@ -43,10 +43,21 @@ import ui.util.IconManager;
 
 import javax.swing.*;
 import javax.swing.text.BadLocationException;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Insets;
+import java.awt.Point;
 import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Class JDialogPragma
@@ -67,7 +78,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
     protected JMenuBar menuBar;
     protected JMenu help;
     protected JPopupMenu helpPopup;
-    public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>();
+    public Map<String, List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>();
 
     /**
      * Creates new form
@@ -85,7 +96,7 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
         //Form list of all blocks
         //For each block, create a list of all states and signals
 
-        private JList list;
+        private JList<String> list;
         private JPopupMenu popupMenu;
         private String subWord;
         private final int insertionPosition;
@@ -112,8 +123,8 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
             }
         }
 
-        private JList createSuggestionList(int linePosition, final int position, final String subWord) {
-            ArrayList<String> matches = new ArrayList<String>();
+        private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) {
+            List<String> matches = new ArrayList<String>();
             if (linePosition < 6) {
                 matches.add("Latency(");
             } else if (!subWord.contains(".")) {
@@ -257,7 +268,6 @@ public class JDialogPerformancePragma extends JDialogBase implements ActionListe
     }
 
     protected void initComponents() {
-
         Container c = getContentPane();
         Font f = new Font("Helvetica", Font.PLAIN, 14);
         setFont(f);
diff --git a/src/main/java/ui/window/JDialogPragma.java b/src/main/java/ui/window/JDialogPragma.java
index b9918ad98d08d9b96524b2d39571c68958e77e25..21d864dcefbd9a289e8bd5dac5f01db03bb3568e 100644
--- a/src/main/java/ui/window/JDialogPragma.java
+++ b/src/main/java/ui/window/JDialogPragma.java
@@ -36,17 +36,27 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
-
 package ui.window;
 
 import ui.util.IconManager;
 
 import javax.swing.*;
 import javax.swing.text.BadLocationException;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Insets;
+import java.awt.Point;
 import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -68,8 +78,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
     protected JButton cancel;
     protected JMenu help;
     private JPopupMenu helpPopup;
-    public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<>();
-    public HashMap<String, java.util.List<String>> blockStateMap = new HashMap<>();
+    public Map<String, java.util.List<String>> blockAttributeMap = new HashMap<>();
+    public Map<String, java.util.List<String>> blockStateMap = new HashMap<>();
 
     /**
      * Creates new form
@@ -85,7 +95,7 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
 
     public class SuggestionPanel {
         private final String[] pragma = {"#Authenticity", "#Confidentiality", "#PublicConstant", "#PrivateConstant", "#InitialSessionKnowledge", "#InitialSystemKnowledge", "#PrivatePublicKeys", "#Public", "#SecrecyAssumption", "#Secret"};
-        private JList list;
+        private JList<String> list;
         private JPopupMenu popupMenu;
         private String subWord;
         private final int insertionPosition;
@@ -111,8 +121,8 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
             }
         }
 
-        private JList createSuggestionList(final int position, final String subWord, String header) {
-            ArrayList<String> matches = new ArrayList<>();
+        private JList<String> createSuggestionList(final int position, final String subWord, String header) {
+            List<String> matches = new ArrayList<>();
             if (subWord.startsWith("#")) {
                 for (String p : pragma) {
                     if (p.startsWith(subWord)) {
@@ -291,7 +301,6 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
     }
 
     protected void initComponents() {
-
         Container c = getContentPane();
         Font f = new Font("Helvetica", Font.PLAIN, 14);
         setFont(f);
@@ -358,12 +367,10 @@ public class JDialogPragma extends JDialogBase implements ActionListener {
             }
         });
 
-
         JScrollPane jsp = new JScrollPane(textarea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
         jsp.setPreferredSize(new Dimension(300, 300));
         c.add(jsp, BorderLayout.CENTER);
 
-
         close = new JButton("Ok", IconManager.imgic25);
         cancel = new JButton("Cancel", IconManager.imgic27);
 
diff --git a/src/main/java/ui/window/JDialogSafetyPragma.java b/src/main/java/ui/window/JDialogSafetyPragma.java
index 8e8f0fb24216dfe185da47962f87a0d704e152e9..bb9afff2feab0b752bc4d380de69189fd2a11c59 100644
--- a/src/main/java/ui/window/JDialogSafetyPragma.java
+++ b/src/main/java/ui/window/JDialogSafetyPragma.java
@@ -43,10 +43,21 @@ import ui.util.IconManager;
 
 import javax.swing.*;
 import javax.swing.text.BadLocationException;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.ComponentOrientation;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.Insets;
+import java.awt.Point;
 import java.awt.event.*;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Class JDialogPragma
@@ -67,7 +78,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
     protected JMenuBar menuBar;
     protected JMenu help;
     protected JPopupMenu helpPopup;
-    public HashMap<String, java.util.List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>();
+    public Map<String, List<String>> blockAttributeMap = new HashMap<String, java.util.List<String>>();
 
     /**
      * Creates new form
@@ -86,7 +97,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         //Form list of all blocks
         //For each block, create a list of all attribute strings and states
 
-        private JList list;
+        private JList<String> list;
         private JPopupMenu popupMenu;
         private String subWord;
         private final int insertionPosition;
@@ -113,8 +124,8 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
             }
         }
 
-        private JList createSuggestionList(int linePosition, final int position, final String subWord) {
-            ArrayList<String> matches = new ArrayList<String>();
+        private JList<String> createSuggestionList(int linePosition, final int position, final String subWord) {
+            List<String> matches = new ArrayList<String>();
             if (linePosition < 3) {
                 for (String p : pragma) {
                     if (p.startsWith(subWord)) {
@@ -264,8 +275,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
     }
 
     protected void initComponents() {
-
-
         Container c = getContentPane();
         Font f = new Font("Helvetica", Font.PLAIN, 14);
         setFont(f);
@@ -284,7 +293,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         textarea.setTabSize(3);
         textarea.append(text);
         textarea.setFont(new Font("times", Font.PLAIN, 12));
-        JMenuBar menuBar = new JMenuBar();
+        menuBar = new JMenuBar();
         menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
         help = new JMenu("?");
         menuBar.add(help);
@@ -364,6 +373,7 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         c.add(jp, BorderLayout.SOUTH);
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
 
@@ -373,7 +383,6 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
         } else if (command.equals("Ok")) {
             close();
         }
-
     }
 
     public void cancel() {
@@ -396,6 +405,4 @@ public class JDialogSafetyPragma extends JDialogBase implements ActionListener {
     public String getText() {
         return text;
     }
-
-
 }
diff --git a/src/main/java/ui/window/JDialogSelectAvatarBlock.java b/src/main/java/ui/window/JDialogSelectAvatarBlock.java
index 98cb245ad0c2c9b4160466aa957dd07d45fa0e4b..2e7eef13485cbf7dee3e1c62166211538fd7c9d7 100644
--- a/src/main/java/ui/window/JDialogSelectAvatarBlock.java
+++ b/src/main/java/ui/window/JDialogSelectAvatarBlock.java
@@ -45,11 +45,19 @@ import ui.util.IconManager;
 import javax.swing.*;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
-import java.awt.*;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.util.Iterator;
 import java.util.LinkedList;
+import java.util.List;
 
 
 /**
@@ -61,10 +69,10 @@ import java.util.LinkedList;
  * @version 1.0 18/05/2010
  */
 public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListener, ListSelectionListener {
-    public LinkedList<AvatarBDStateMachineOwner> validated, ignored;
+    public List<AvatarBDStateMachineOwner> validated, ignored;
     private boolean optimized = true;
 
-    private LinkedList<AvatarBDStateMachineOwner> val, ign, back;
+    private List<AvatarBDStateMachineOwner> val, ign, back;
 
     private JList<AvatarBDStateMachineOwner> listIgnored;
     private JList<AvatarBDStateMachineOwner> listValidated;
@@ -79,7 +87,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
     /**
      * Creates new form
      */
-    public JDialogSelectAvatarBlock(Frame f, LinkedList<AvatarBDStateMachineOwner> _back, LinkedList<AvatarBDStateMachineOwner> componentList, String title, LinkedList<AvatarBDStateMachineOwner> _validated, LinkedList<AvatarBDStateMachineOwner> _ignored, boolean _optimized) {
+    public JDialogSelectAvatarBlock(Frame f, List<AvatarBDStateMachineOwner> _back, List<AvatarBDStateMachineOwner> componentList, String title, List<AvatarBDStateMachineOwner> _validated, List<AvatarBDStateMachineOwner> _ignored, boolean _optimized) {
         super(f, title, true);
 
         back = _back;
@@ -103,7 +111,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         pack();
     }
 
-    private void checkTask(LinkedList<AvatarBDStateMachineOwner> tobeChecked, LinkedList<AvatarBDStateMachineOwner> source) {
+    private void checkTask( List<AvatarBDStateMachineOwner> tobeChecked, List<AvatarBDStateMachineOwner> source) {
         Iterator<AvatarBDStateMachineOwner> iterator = tobeChecked.iterator();
 
         while (iterator.hasNext()) {
@@ -113,7 +121,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         }
     }
 
-    private void addNewTask(LinkedList<AvatarBDStateMachineOwner> added, LinkedList<AvatarBDStateMachineOwner> source, LinkedList<AvatarBDStateMachineOwner> notSource) {
+    private void addNewTask( List<AvatarBDStateMachineOwner> added, List<AvatarBDStateMachineOwner> source, List<AvatarBDStateMachineOwner> notSource) {
         for (AvatarBDStateMachineOwner tgc : source)
             if (!added.contains(tgc) && !notSource.contains(tgc))
                 added.add(tgc);
@@ -262,6 +270,7 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
 
     }
 
+    @Override
     public void actionPerformed(ActionEvent evt) {
         String command = evt.getActionCommand();
 
@@ -380,7 +389,6 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         }
     }
 
-
     public void valueChanged(ListSelectionEvent e) {
         setButtons();
     }
@@ -393,11 +401,11 @@ public class JDialogSelectAvatarBlock extends JDialogBase implements ActionListe
         return hasBeenCancelled;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getValidated() {
+    public List<AvatarBDStateMachineOwner> getValidated() {
         return validated;
     }
 
-    public LinkedList<AvatarBDStateMachineOwner> getIgnored() {
+    public List<AvatarBDStateMachineOwner> getIgnored() {
         return ignored;
     }
 }
diff --git a/src/main/java/ui/window/JDialogSignalAssociation.java b/src/main/java/ui/window/JDialogSignalAssociation.java
index 084e1046c1c41e2b63e128c69b64dd8f05b436a8..b87fd0fe74de31ec119cf2b8b18f46aafe26fc21 100644
--- a/src/main/java/ui/window/JDialogSignalAssociation.java
+++ b/src/main/java/ui/window/JDialogSignalAssociation.java
@@ -36,27 +36,39 @@
  * knowledge of the CeCILL license and that you accept its terms.
  */
 
+package ui.window;
 
+import java.awt.Container;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Frame;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.List;
+import java.util.Vector;
 
-
-package ui.window;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
 
 import myutil.TraceManager;
 import ui.AvatarSignal;
-import ui.util.IconManager;
 import ui.avatarbd.AvatarBDBlock;
 import ui.avatarbd.AvatarBDPortConnector;
 
-import javax.swing.*;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.LinkedList;
-import java.util.Vector;
-
-
 /**
    * Class JDialogSignalAssociation
    * Dialog for managing associations between signals (AVATAR profile)
@@ -67,7 +79,7 @@ import java.util.Vector;
 public class JDialogSignalAssociation extends JDialogBase implements ActionListener, ListSelectionListener  {
     private Vector<String> signalAssociation, localSignalAssociations;
     private AvatarBDBlock block1, block2;
-    private LinkedList<AvatarSignal> available1, available2;
+    private List<AvatarSignal> available1, available2;
     private AvatarBDPortConnector connector;
 
     private JRadioButton synchronous, asynchronous;
@@ -88,7 +100,6 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe
     private JButton downButton;
     private JButton removeButton;
 
-
     /** Creates new form  */
     public JDialogSignalAssociation(Frame _f, AvatarBDBlock _block1, AvatarBDBlock _block2, Vector<String> _signalAssociation, AvatarBDPortConnector _connector, String _title) {
         super(_f, _title, true);
@@ -100,13 +111,13 @@ public class JDialogSignalAssociation extends JDialogBase implements ActionListe
         localSignalAssociations.addAll(signalAssociation);
 
         // Available signals
-	if (block1 != block2) {
-	    available1 = block1.getListOfAvailableSignals();
-	    available2 = block2.getListOfAvailableSignals();
-	} else {
-	    available1 = block1.getListOfAvailableOutSignals();
-	    available2 = block2.getListOfAvailableInSignals();
-	}
+		if (block1 != block2) {
+		    available1 = block1.getListOfAvailableSignals();
+		    available2 = block2.getListOfAvailableSignals();
+		} else {
+		    available1 = block1.getListOfAvailableOutSignals();
+		    available2 = block2.getListOfAvailableInSignals();
+		}
 
         initComponents();
         myInitComponents();
diff --git a/src/main/java/ui/window/JDialogSystemCGeneration.java b/src/main/java/ui/window/JDialogSystemCGeneration.java
index 2da61d2d75eb55da2c4fee5a5b206c6ae0bc5f1f..3a4c9f2056e10a3f8487de5c3ce8f475f4609bbb 100644
--- a/src/main/java/ui/window/JDialogSystemCGeneration.java
+++ b/src/main/java/ui/window/JDialogSystemCGeneration.java
@@ -59,9 +59,9 @@ import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
+import javax.swing.text.BadLocationException;
 import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
+import java.awt.event.*;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
@@ -73,10 +73,22 @@ import java.util.Vector;
  * Creation: 01/12/2005
  *
  * @author Ludovic APVRILLE, Andrea ENRICI
- * @version 1.2 02/06/2014
+ * @version 1.3 24/07/2018
  */
 public class JDialogSystemCGeneration extends JDialog implements ActionListener, Runnable, MasterProcessInterface, ListSelectionListener {
 
+    protected static final String HELP = "Penalties of components:\n" +
+            "*CPUs*: \n" +
+            "\tTask switching time \n" +
+            "\tPipeline\n" +
+            "\tCache miss\n" +
+            "\tMiss branching prediction\n" +
+            "\tCycles before being idle\n" +
+            "\tcycles for mode switch to/from idle\n\n" +
+            "*Buses*:\n" +
+            "\tPipeline\n";
+
+
     protected MainGUI mgui;
 
     private static String textSysC1 = "Generate C++ simulator code in";
@@ -123,6 +135,11 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
     protected JCheckBox removeCppFiles, removeXFiles, debugmode, optimizemode, activatePenalties;
     protected JComboBox<String> versionSimulator;
 
+    protected JMenu help;
+    protected JPopupMenu helpPopup;
+    protected JTextArea textarea;
+    protected JMenuBar menuBar;
+
     //TEPE Diagram
     private static Vector<AvatarPDPanel> validatedTepe, ignoredTepe;
     private Vector<AvatarPDPanel> valTepe, ignTepe;
@@ -312,7 +329,24 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
         optimizemode.setSelected(optimizeModeSelected);
         jp01.add(optimizemode, c01);
 
-        activatePenalties = new JCheckBox("Activate penalties");
+
+        helpPopup = new JPopupMenu();
+        helpPopup.add(new JTextArea(HELP));
+        //helpPopup.setPreferredSize(new Dimension(400, 500));
+        menuBar = new JMenuBar();
+        menuBar.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
+        help = new JMenu("?");
+        help.addMouseListener(new MouseAdapter() {
+            @Override
+            public void mousePressed(MouseEvent e) {
+               help();
+            }
+        });
+        menuBar.add(help);
+        setJMenuBar(menuBar);
+        help.setPreferredSize(new Dimension(30, 30));
+
+        activatePenalties = new JCheckBox("Activate penalties (task switching time, cache miss, miss branching prediction)");
         activatePenalties.setSelected(activatePenaltiesSelected);
         jp01.add(activatePenalties, c01);
 
@@ -1147,4 +1181,12 @@ public class JDialogSystemCGeneration extends JDialog implements ActionListener,
             validatedTepe.add(valTepe.get(i));
         }
     }
+
+    public void help() {
+        if (!helpPopup.isVisible()) {
+            helpPopup.show(help, 20, 20);
+        } else {
+            helpPopup.setVisible(false);
+        }
+    }
 }
diff --git a/src/main/java/ui/window/JDialogUPPAALValidation.java b/src/main/java/ui/window/JDialogUPPAALValidation.java
index ba0199cdd454e899df7b58f521b13d34379a813e..7acaf31c0d55969bf344ae46dbf86bf73f6a5f2d 100644
--- a/src/main/java/ui/window/JDialogUPPAALValidation.java
+++ b/src/main/java/ui/window/JDialogUPPAALValidation.java
@@ -757,7 +757,7 @@ public class JDialogUPPAALValidation extends javax.swing.JDialog implements Acti
         UPPAALSpec spec = mgui.gtm.getLastUPPAALSpecification();
         AVATAR2UPPAAL avatar2uppaal = mgui.gtm.getAvatar2Uppaal();
         AvatarSpecification avspec = mgui.gtm.getAvatarSpecification();
-        Hashtable<String, String> hash = avatar2uppaal.getHash();
+        Map<String, String> hash = avatar2uppaal.getHash();
         String finQuery = query + " ";
         /*      String[] split = query.split("[\\s-()=]+");
                 for (String s: split){
diff --git a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java
index 57848483234a02f60e4e75fd75a678c07d1f77db..1a7af105021ece6d3a50606ea9465b6c9bf0e31e 100644
--- a/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarSecurityTranslationTests.java
@@ -48,7 +48,7 @@ package avatartranslator;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import java.util.LinkedList;
+import java.util.List;
 
 import javax.swing.JFrame;
 import javax.swing.JPanel;
@@ -92,7 +92,7 @@ public class AvatarSecurityTranslationTests {
  		mgui.dtree = new JDiagramTree(mgui);
         mgui.dtree.setCellRenderer(new DiagramTreeRenderer());
         ToolTipManager.sharedInstance().registerComponent(mgui.dtree);
-        JScrollPane scrollPane = new JScrollPane(mgui.dtree);
+        /*JScrollPane scrollPane =*/ new JScrollPane(mgui.dtree);
 		mgui.newTurtleModeling();
 //		mgui.tabs = new Vector<TURTLEPanel>();
 		TMLComponentDesignPanel tmlcdp = new TMLComponentDesignPanel(mgui);
@@ -151,7 +151,7 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		//First state is start state
 		assertTrue(elems.get(0) instanceof AvatarStartState);
 		//state is avatartransition
@@ -186,7 +186,7 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		
 		AvatarTransition at = (AvatarTransition) elems.get(3);
 		//Check that action is encryption
@@ -212,7 +212,7 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		
 		AvatarTransition at = (AvatarTransition) elems.get(3);
 		//Check that action is empty
@@ -242,15 +242,13 @@ public class AvatarSecurityTranslationTests {
 		assertTrue(avspec!=null);
 		AvatarBlock block1 = avspec.getBlockWithName("task1");
 		AvatarStateMachine sm =	block1.getStateMachine();
-		LinkedList<AvatarStateMachineElement> elems=  sm.getListOfElements();
+		List<AvatarStateMachineElement> elems=  sm.getListOfElements();
 		
 		AvatarTransition at = (AvatarTransition) elems.get(3);
 		//Check that action is encryption
 		assertEquals(at.getActions().get(0).getName().replaceAll(" ",""),"mac_mac=MAC(mac,key_mac)");
 	}
 
-
-
     public static void main(String[] args){
         AvatarSecurityTranslationTests apt = new AvatarSecurityTranslationTests ();
         //apt.runTest ();
diff --git a/ttool/src/test/java/ui/AbstractUITest.java b/ttool/src/test/java/ui/AbstractUITest.java
index 1d2a1c6ba9a781097d0923a1691141a0a40eb1eb..b650c1d961266888cdc49eaf8d7ec993e810fc30 100644
--- a/ttool/src/test/java/ui/AbstractUITest.java
+++ b/ttool/src/test/java/ui/AbstractUITest.java
@@ -4,14 +4,15 @@ import static org.junit.Assert.fail;
 
 import myutil.PluginManager;
 import test.AbstractTest;
-import ui.util.IconManager;
 
 public abstract class AbstractUITest extends AbstractTest {
 	
 	protected final MainGUI mainGui;
 	
 	protected AbstractUITest() {
-		IconManager.loadImg();
+		
+		// DB: Not needed for tests (causes NPE)
+		//IconManager.loadImg();
 		mainGui = new MainGUI(false,false, false, false, false, false, false, false, false, false, true, false, false);
 		mainGui.build();
 		PluginManager.pluginManager = new PluginManager();