diff --git a/src/main/java/avatartranslator/AvatarStateMachineElement.java b/src/main/java/avatartranslator/AvatarStateMachineElement.java
index 1bd3b30b2f73fc96866a69f2072f1296d65480aa..61d1e9483e23d2c3afb4dfe9e4a16e8f3d082038 100644
--- a/src/main/java/avatartranslator/AvatarStateMachineElement.java
+++ b/src/main/java/avatartranslator/AvatarStateMachineElement.java
@@ -85,11 +85,11 @@ public abstract class AvatarStateMachineElement extends AvatarElement {
     }
 
     public void setCheckable() {
-        isCheckable = true;
+        this.isCheckable = true;
     }
 
     public boolean isCheckable() {
-        return isCheckable;
+        return this.isCheckable;
     }
 
     public void addNext(AvatarStateMachineElement _element) {
diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java
index bbaca5866912bf498a1124d42e5d69cee5f98ebb..08c6d37e4d2b8ce9f0391dca3facd8a4c166d59d 100644
--- a/src/main/java/ui/AvatarDesignPanelTranslator.java
+++ b/src/main/java/ui/AvatarDesignPanelTranslator.java
@@ -271,6 +271,7 @@ public class AvatarDesignPanelTranslator {
 
 		String p2 = pragma.split(",")[1].split("\\)")[0];
 		if (!p2.contains(".")){
+
 			TraceManager.addDev("Invalid block.signal format");
 			return null;
 		}
@@ -324,6 +325,7 @@ public class AvatarDesignPanelTranslator {
 			}
 		}
 		else {
+
 			TraceManager.addDev("No latency expression found");
 			return null;
 		}
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index d7db74e0432d53f3b3259af684868cb8e5efac5b..9536e60434f2163b849eaaf937b6574551257eba 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -233,6 +233,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
     public final static byte AVATAR_SYNTAXCHECKING_OK = 47;
     public final static byte PANEL_CHANGED = 48;
     public final static byte ATTACKTREE_SYNTAXCHECKING_OK = 49;
+    public final static byte COMPONENT_SELECTED = 50;
 
     public final static int INCREMENT = 10;
 
@@ -2753,17 +2754,37 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
         rgautprojdotfile = new File(myFile + "_proj.aut.dot");
     }
 
+    /**
+     * Display "Modeling has not been saved" window
+     * @author Fabien Tessier
+     * @param str1 (text for the left button)
+     * @param str2 (text for the right button)
+     * @return boolean (false = cancel, true = perform action)
+     */
     public boolean saveBeforeAction(String str1, String str2) {
-        Object[] options = { str1, str2, "CANCEL" };
-        int back = JOptionPane.showOptionDialog(frame, "Modeling has not been saved", "Warning",
-                                                JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
-                                                null, options, options[0]);
-        //TraceManager.addDev("back= " + back);
-        if (back == JOptionPane.CANCEL_OPTION) {
+    	Object[] options = { str1, str2, "CANCEL" }; //Texts for buttons
+    	JOptionPane optionPane = new JOptionPane("Modeling has not been saved", JOptionPane.WARNING_MESSAGE, JOptionPane.YES_NO_CANCEL_OPTION, null, options, options[0]);
+        JDialog dialog = optionPane.createDialog(activetdp, "Warning"); //Use JDialog to enable navigation with arrow keys
+        dialog.setLocation((frame.getSize().width)/2 - dialog.getWidth()/2, (frame.getSize().height)/2 - dialog.getHeight()/2);
+        UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE);
+        
+        Set forwardTraversalKeys = new HashSet(dialog.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
+        forwardTraversalKeys.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_RIGHT, KeyEvent.VK_UNDEFINED));
+        dialog.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, forwardTraversalKeys); //Navigation with right arrow
+
+        Set backwardTraversalKeys = new HashSet(dialog.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
+        backwardTraversalKeys.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_LEFT, KeyEvent.VK_UNDEFINED));
+        dialog.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, backwardTraversalKeys); //Navigation with left arrow
+        
+        dialog.setVisible(true);
+        dialog.dispose();
+        String ret = (String) optionPane.getValue(); //Get value of the pressed button
+        if (ret == null || ret.equals("CANCEL")) {
             return false;
         }
-        if (back == JOptionPane.YES_OPTION) {
-            saveProject();
+        
+        if (ret.equals(str1)) {
+        	saveProject();
         }
         return true;
     }
@@ -2816,6 +2837,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
 
     public void delete() {
         getCurrentTDiagramPanel().makeDelete();
+        setMode(MainGUI.OPENED);
     }
 
     public void backward() {
diff --git a/src/main/java/ui/ModeManager.java b/src/main/java/ui/ModeManager.java
index fb11391da3bdbcb805540c47e823de29ff1cfcd4..a8a33ab8ad617461bba039f230a18170ed531d11 100755
--- a/src/main/java/ui/ModeManager.java
+++ b/src/main/java/ui/ModeManager.java
@@ -119,12 +119,12 @@ public class ModeManager {
             actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_DIAGRAM].setEnabled(true);
             actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_CURRENT_SET_OF_DIAGRAMS].setEnabled(true);
             actions[TGUIAction.ACT_GENERATE_ONTOLOGIES_ALL_DIAGRAMS].setEnabled(true);
-            actions[TGUIAction.ACT_DELETE].setEnabled(true);
-            actions[TGUIAction.ACT_SUPPR].setEnabled(true);
-            actions[TGUIAction.ACT_UP].setEnabled(true);
-            actions[TGUIAction.ACT_DOWN].setEnabled(true);
-            actions[TGUIAction.ACT_LEFT].setEnabled(true);
-            actions[TGUIAction.ACT_RIGHT].setEnabled(true);
+            actions[TGUIAction.ACT_DELETE].setEnabled(false);
+            actions[TGUIAction.ACT_SUPPR].setEnabled(false);
+            actions[TGUIAction.ACT_UP].setEnabled(false);
+            actions[TGUIAction.ACT_DOWN].setEnabled(false);
+            actions[TGUIAction.ACT_LEFT].setEnabled(false);
+            actions[TGUIAction.ACT_RIGHT].setEnabled(false);
             
             if (mainBar != null) {
                 mainBar.activateSearch(true);
@@ -407,6 +407,14 @@ public class ModeManager {
         case MainGUI.NC_OK:
             actions[TGUIAction.ACT_NC].setEnabled(true);
             break;
+        case MainGUI.COMPONENT_SELECTED:
+        	actions[TGUIAction.ACT_UP].setEnabled(true);
+            actions[TGUIAction.ACT_DOWN].setEnabled(true);
+            actions[TGUIAction.ACT_LEFT].setEnabled(true);
+            actions[TGUIAction.ACT_RIGHT].setEnabled(true);
+            actions[TGUIAction.ACT_DELETE].setEnabled(true);
+            actions[TGUIAction.ACT_SUPPR].setEnabled(true);
+            break;
         default:
             TraceManager.addDev("DEFAULT");
             mgui.activeActions(false);
diff --git a/src/main/java/ui/TDiagramMouseManager.java b/src/main/java/ui/TDiagramMouseManager.java
index 43df70d235337a2e78fd2a0cffb0912c30fa6404..39b95c1bec39e0121e6fe8a29cefa4708a01dbce 100755
--- a/src/main/java/ui/TDiagramMouseManager.java
+++ b/src/main/java/ui/TDiagramMouseManager.java
@@ -166,7 +166,8 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
                             tdp.addingTGConnector();
                             cp = p1;
                             tdp.setAddingTGConnector(e.getX(), e.getY());
-                            tdp.repaint();
+                            //tdp.repaint();
+                            setSelection(p1.container.getX(), p1.container.getY());
                         }
                     }
                 }
@@ -285,6 +286,7 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
                 //System.out.println("change2");
                 tdp.getGUI().changeMade(tdp, TDiagramPanel.MOVE_COMPONENT);
             }
+            setSelection(e.getX(), e.getY());
         }
 
         if (tdp.mode == TDiagramPanel.SELECTING_COMPONENTS) {
@@ -480,14 +482,16 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
              }
  	    }
  	    if (tgc != null) { //A component has been clicked
-     	   lastSelectedComponent = tgc;
-     	   tdp.setSelect(true);
-     	   tgc.singleClick(tdp.getGUI().getFrame(), x, y);       	   
+ 	        tdp.getGUI().setMode(MainGUI.COMPONENT_SELECTED);
+     	    lastSelectedComponent = tgc;
+     	    tdp.setSelect(true);
+     	    tgc.singleClick(tdp.getGUI().getFrame(), x, y);       	   
         }
         else {
-     	   tdp.setSelect(false);
-     	   lastSelectedComponent = null;
-     	   tdp.componentPointed = null;
+        	tdp.getGUI().setMode(MainGUI.OPENED);
+     	    tdp.setSelect(false);
+     	    lastSelectedComponent = null;
+     	    tdp.componentPointed = null;
         }
         tdp.getGUI().changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
 	    tdp.repaint();
@@ -545,10 +549,12 @@ public class TDiagramMouseManager extends MouseAdapter {//implements MouseListen
             }
         }
 
-        if ((tdp.mode == TDiagramPanel.NORMAL) && (selected == TGComponentManager.EDIT) && (selectedComponent == false) && (!tdp.isSelect())){
-            byte info = tdp.highlightComponent(e.getX(), e.getY());
-            if (info > 1) {
-                tgc = tdp.componentPointed();
+        if ((tdp.mode == TDiagramPanel.NORMAL) && (selected == TGComponentManager.EDIT)){
+            byte info = 0;
+        	if (!tdp.isSelect())
+        		info = tdp.highlightComponent(e.getX(), e.getY());
+            if (info > 1 || tdp.isSelect()) {
+            	tgc = tdp.componentPointed();
                 if (tgc.isUserResizable()) {
                     setCursor(tgc.getResizeZone(e.getX(), e.getY()));
                 } else {
diff --git a/ttool/src/test/java/avatartranslator/AvatarGuardTests.java b/ttool/src/test/java/avatartranslator/AvatarGuardTests.java
index 695d076804a077ae0484be71137b57112e996a23..28f73ee1f94806cd32f59b7e1c96ab8b1702f6d3 100644
--- a/ttool/src/test/java/avatartranslator/AvatarGuardTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarGuardTests.java
@@ -43,23 +43,33 @@
  * @see
  */
 
+import org.junit.Test;
+import org.junit.*;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 
 import java.util.LinkedList;
 import java.util.HashMap;
 import java.util.Vector;
 
+
 import ui.TAttribute;
 import avatartranslator.*;
 
 public class AvatarGuardTests {
 
+	AvatarGuard res;
+	AvatarBlock A,B;
     public AvatarGuardTests () {
       //  super ("AvatarGuards", false);
     }
-
-    protected void test () {
+	@Before
+    public void test () {
         AvatarSpecification as = new AvatarSpecification("avatarspecification", null);
-        AvatarBlock A = new AvatarBlock("A", as, null);
+        A = new AvatarBlock("A", as, null);
         AvatarStateMachine Aasm = A.getStateMachine();
         Aasm.addElement(new AvatarState("a1", null));
         A.addAttribute(new AvatarAttribute("key1", AvatarType.INTEGER, A, null));
@@ -67,7 +77,7 @@ public class AvatarGuardTests {
         A.addAttribute(new AvatarAttribute("test", AvatarType.BOOLEAN, A, null));
         A.addAttribute(new AvatarAttribute("test2", AvatarType.BOOLEAN, A, null));
 
-        AvatarBlock B = new AvatarBlock("B", as, null);
+        B = new AvatarBlock("B", as, null);
         AvatarStateMachine Basm = B.getStateMachine();
         Basm.addElement(new AvatarState("b1", null));
         B.addAttribute(new AvatarAttribute("key1", AvatarType.INTEGER, B, null));
@@ -88,7 +98,7 @@ public class AvatarGuardTests {
         blocks.add(B);
         blocks.add(C);
 
-        HashMap<String, Vector> typeAttributesMap = new HashMap<String, Vector>();
+        HashMap<String, Vector<TAttribute>> typeAttributesMap = new HashMap<String, Vector<TAttribute>>();
         HashMap<String, String> nameTypeMap = new HashMap<String, String>();
 
         //Type T1: a,b
@@ -99,86 +109,103 @@ public class AvatarGuardTests {
         nameTypeMap.put("C.m", "T1");
         nameTypeMap.put("B.m", "T1");
         nameTypeMap.put("C.d", "T2");
-        Vector t1s= new Vector();
-        Vector t2s= new Vector();
+        Vector<TAttribute> t1s= new Vector<TAttribute>();
+        Vector<TAttribute> t2s= new Vector<TAttribute>();
         t1s.add(attr_a);
         t1s.add(attr_b);
         t2s.add(attr_c);
         typeAttributesMap.put("T1", t1s);
         typeAttributesMap.put("T2", t2s);
-        AvatarGuard res;
 
-		/*
-        //Else Guard
-        res= AvatarGuard.createFromString(A, "else");
-        this.updateDigest("Created else guard " +(res instanceof AvatarGuardElse));
-        //Empty Guard
+	}
+	
+	@Test
+	public void testElseGuardCreation(){
+		res= AvatarGuard.createFromString(A, "else");
+		assertTrue(res instanceof AvatarGuardElse);
+	}
+
+	@Test
+	public void testEmptyGuardCreation(){
+		//Empty Guard
         res= AvatarGuard.createFromString(A, "");
-        this.updateDigest("Created empty guard " +(res instanceof AvatarGuardEmpty));
+        assertTrue(res instanceof AvatarGuardEmpty);
+	}
+   
+	@Test
+	public void testFailNonValidExpression(){
         //Fail if not valid expression
         res= AvatarGuard.createFromString(A, "arg(key1==key2))");
-        this.updateDigest("Fail if nonvalid expression " +(res instanceof AvatarGuardEmpty));
+        assertTrue(res instanceof AvatarGuardEmpty);
         res= AvatarGuard.createFromString(A, "key1=key2");
-        this.updateDigest("Fail if nonvalid expression " +(res instanceof AvatarGuardEmpty));
+        assertTrue(res instanceof AvatarGuardEmpty);
         res= AvatarGuard.createFromString(A, "key1==)");
-        this.updateDigest("Fail if nonvalid expression " +(res instanceof AvatarGuardEmpty));
+        assertTrue(res instanceof AvatarGuardEmpty);
         res= AvatarGuard.createFromString(A, "(key1==)))");
-        this.updateDigest("Fail if nonvalid expression " +(res instanceof AvatarGuardEmpty));
-
-        //Mono Guards
-        this.updateDigest("Mono Guard Tests");
-        res= AvatarGuard.createFromString(A, "test");
-        this.updateDigest("Created mono guard " +(res instanceof AvatarSimpleGuardMono));
-
-        //Duo Guards
-        this.updateDigest("Duo Guard Tests");
-        res= AvatarGuard.createFromString(A, "test==test2");
-        this.updateDigest("Created duo guard " +(res instanceof AvatarSimpleGuardDuo));
+        assertTrue(res instanceof AvatarGuardEmpty);
+	}
+        
+	
+	@Test
+	public void testMonoGuardCreation(){
+		res= AvatarGuard.createFromString(A, "test");
+        assertTrue(res instanceof AvatarSimpleGuardMono);
+	}
+
+	@Test
+	public void testDuoGuardCreation(){
+		res= AvatarGuard.createFromString(A, "test==test2");
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
         res= AvatarGuard.createFromString(A, "key1==key2");
-        this.updateDigest("Created duo guard " +(res instanceof AvatarSimpleGuardDuo));
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
+
         res= AvatarGuard.createFromString(A, "key1 != key2");
-        this.updateDigest("Created duo guard " +(res instanceof AvatarSimpleGuardDuo));
+
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
+
         res= AvatarGuard.createFromString(A, "key1 != true");
-        this.updateDigest("Created duo guard " +(res instanceof AvatarSimpleGuardDuo));
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
         res= AvatarGuard.createFromString(A, "key1 != false");
-        this.updateDigest("Created duo guard " +(res instanceof AvatarSimpleGuardDuo));
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
+
         res= AvatarGuard.createFromString(A, "key1 != 1");
-        this.updateDigest("Created duo guard " +(res instanceof AvatarSimpleGuardDuo));
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
         res= AvatarGuard.createFromString(A, "key1 != a1234");
-        this.updateDigest("Created duo guard " +(res instanceof AvatarSimpleGuardDuo));
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
         res= AvatarGuard.createFromString(A, "(a,b)==(c,d)");
-        this.updateDigest("Created duo guard with tuple " +(res instanceof AvatarSimpleGuardDuo));
 
-        //Unary Guards
-        this.updateDigest("Unary Guard Tests");
+        assertTrue(res instanceof AvatarSimpleGuardDuo);
+	}
+
+	@Test
+	public void testUnaryGuardCreation(){
         res= AvatarGuard.createFromString(A, "not(test)");
-        this.updateDigest("Created unary guard " +(res instanceof AvatarUnaryGuard));
+        assertTrue(res instanceof AvatarUnaryGuard);
         res= AvatarGuard.createFromString(A, "not(test==test2)");
-        this.updateDigest("Created unary guard " +(res instanceof AvatarUnaryGuard));
+        assertTrue(res instanceof AvatarUnaryGuard);
         res= AvatarGuard.createFromString(A, "not(key1==key2)");
-        this.updateDigest("Created unary guard " +(res instanceof AvatarUnaryGuard));
+        assertTrue(res instanceof AvatarUnaryGuard);
         res= AvatarGuard.createFromString(B, "not(m__a==key2)");
-        this.updateDigest("Created unary guard " +(res instanceof AvatarUnaryGuard));
+        assertTrue(res instanceof AvatarUnaryGuard);
         res= AvatarGuard.createFromString(B, "not(m__a==m__b)");
-        this.updateDigest("Created unary guard " +(res instanceof AvatarUnaryGuard));
+        assertTrue(res instanceof AvatarUnaryGuard);
+
+	}
 
+	@Test
+	public void testBinaryGuardCreation(){
         //Binary Guards
-        this.updateDigest("Binary Guard Tests");
         res= AvatarGuard.createFromString(A, "(key1==true) and (key2==false)");
-        this.updateDigest("Binary guard with and " +(res instanceof AvatarBinaryGuard));
+        assertTrue(res instanceof AvatarBinaryGuard);
         res= AvatarGuard.createFromString(A, "(a) and (b)");
-        this.updateDigest("Binary guard with tuple " +(res instanceof AvatarBinaryGuard));
+        assertTrue(res instanceof AvatarBinaryGuard);
         res= AvatarGuard.createFromString(A, "(key1==key1) or (key2==key1)");
-        this.updateDigest("Binary guard with or " +(res instanceof AvatarBinaryGuard));
+        assertTrue(res instanceof AvatarBinaryGuard);
         res= AvatarGuard.createFromString(A, "((key1==key1) or (key2==key1)) and (m__a==m__b)");
-        this.updateDigest("Binary guard with and/or " +(res instanceof AvatarBinaryGuard));
-        this.updateDigest("-------------------------------------");
-
-		*/
-        //Avatar Specification Tests
-
+        assertTrue(res instanceof AvatarBinaryGuard);
+	}
  
-    }
+    
     public static void main(String[] args){
         AvatarGuardTests apt = new AvatarGuardTests ();
         //apt.runTest ();
diff --git a/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java b/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java
index 13a7446015f07d1df2f101cbd3e296bc49fe34b1..b9b7c0e8e3d05ea225d585f9dfdb4160c31dfc2d 100644
--- a/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarPragmaTests.java
@@ -295,7 +295,7 @@ public class AvatarPragmaTests {
 	
 	@Test
 	public void testPublicPragmaCreation(){
-		res = AvatarPragma.createFromString("Public A.key1 B.key2", bdpragma ,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
+		res = AvatarPragma.createFromString("Public A.key1 B.key2", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 		//Check no error
 		assertEquals(res.size(),1);
 		//Check Type
@@ -305,84 +305,82 @@ public class AvatarPragmaTests {
 		assertEquals(((AvatarPragmaPublic) res.get(0)).getArgs().get(0).getName(),"key1");
 		assertEquals(((AvatarPragmaPublic) res.get(0)).getArgs().get(1).getName(),"key2");
 	}
-	
-	public void	test(){
-/*
-	
 
+	@Test
+	public void testPragmaAuthenticityFailWrongArgs(){
+		//Fail if wrong # of arguments
+		res = AvatarPragma.createFromString("Authenticity A.key1 A.key2 B.key1 C.attr", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);	
+		assertEquals(res.size(),0);
+		res = AvatarPragma.createFromString("Authenticity C.attr", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);	
+		assertEquals(res.size(),0);
+	}
 
-	//Test Public
-	this.updateDigest("Public Tests");
+	@Test
+	public void testPragmaAuthenticityFailMissingState(){
+		//Fail if lack of state
+		res = AvatarPragma.createFromString("Authenticity A.state.attr", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);	
+		assertEquals(res.size(),0);
+	}
 	
-	this.updateDigest("-------------------------------------");
+	@Test	
+	public void testPragmaAuthenticityFailAttributeWrongType(){
+		//Fail if attributes are not same type
+		res = AvatarPragma.createFromString("Authenticity A.a1.key1 C.c1.m", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);
+		assertEquals(res.size(),0);
+		res = AvatarPragma.createFromString("Authenticity B.b1.m C.c1.d", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);
+		assertEquals(res.size(),0);
+		res = AvatarPragma.createFromString("Authenticity B.b1.key2 A.a1.key1", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);
+		assertEquals(res.size(),0);	
+	}
 	
-	//Test Authenticity
-	this.updateDigest("Authenticity Tests");
-	//Fail if wrong # of args
-	res = AvatarPragma.createFromString("Authenticity A.key1 A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
-	this.updateDigest("Authenticity args count " + (res.size()==0));
-	res = AvatarPragma.createFromString("Authenticity C.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
-	this.updateDigest("Authenticity args count " + (res.size()==0));
-	//Fail if lack of state
-	res = AvatarPragma.createFromString("Authenticity A.state.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
-	this.updateDigest("Missing State " + (res.size()==0));
-	//Fail if attributes are not same type
-	res = AvatarPragma.createFromString("Authenticity A.a1.key1 C.c1.m", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
-	this.updateDigest("Incompatible types " + (res.size()==0));
-	res = AvatarPragma.createFromString("Authenticity B.b1.m C.c1.d", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
-	this.updateDigest("Incompatible types " + (res.size()==0));
-	res = AvatarPragma.createFromString("Authenticity B.b1.key2 A.a1.key1", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
-	this.updateDigest("Incompatible types " + (res.size()==0));	
-	//Check no error
-	res = AvatarPragma.createFromString("Authenticity A.a1.key1 C.c1.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
-	this.updateDigest("No error: "+ (res.size()!=0));
-	//Check Type
-	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaAuthenticity));
-
-	//Attribute
-	AvatarPragmaAuthenticity res3 = (AvatarPragmaAuthenticity) res.get(0);
-	// this.updateDigest("# of Attributes: " + (res3.getArgs().size() == 2));
-	//this.updateDigest("Attr "+ res3.getAttrA());
-	//this.updateDigest("Attr "+ res3.getAttrB());
-	this.updateDigest("Attr Name "+ res3.getAttrA().getName());
-	this.updateDigest("Attr Name "+ res3.getAttrB().getName());
-	this.updateDigest("Attr State "+ res3.getAttrA().getState());
-	this.updateDigest("Attr State "+ res3.getAttrB().getState());
-	//Check multi-creation
-	res = AvatarPragma.createFromString("Authenticity B.b1.m C.c1.m", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
-	this.updateDigest("Multiple creation pass: "+ (res.size()==2));
-	res3 = (AvatarPragmaAuthenticity) res.get(1);
-	// this.updateDigest("# of Attributes: " + (res3.getArgs().size() == 2));
-	//this.updateDigest("Attr "+ res3.getAttrA());
-	//this.updateDigest("Attr "+ res3.getAttrB());
-	this.updateDigest("Attr Name "+ res3.getAttrA().getName());
-	this.updateDigest("Attr Name "+ res3.getAttrB().getName());
-	this.updateDigest("Attr State "+ res3.getAttrA().getState());
-	this.updateDigest("Attr State "+ res3.getAttrB().getState());
-	res3 = (AvatarPragmaAuthenticity) res.get(0);
-	// this.updateDigest("# of Attributes: " + (res3.getArgs().size() == 2));
-	this.updateDigest("Attr Name "+ res3.getAttrA().getName());
-	this.updateDigest("Attr Name "+ res3.getAttrB().getName());
-	this.updateDigest("Attr State "+ res3.getAttrA().getState());
-	this.updateDigest("Attr State "+ res3.getAttrB().getState());
-	this.updateDigest("-------------------------------------");
+	@Test
+	public void testPragmaAuthenticityCreation(){
+		//Check no error
+		res = AvatarPragma.createFromString("Authenticity A.a1.key1 C.c1.attr", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);	
+		assertEquals(res.size(),1);
+		//Check Type
+		assertTrue(res.get(0) instanceof AvatarPragmaAuthenticity);
+		//Check Attributes
+		AvatarPragmaAuthenticity res3 = (AvatarPragmaAuthenticity) res.get(0);
+		assertEquals(res3.getAttrA().getAttribute().getName(),"key1");
+		assertEquals(res3.getAttrB().getAttribute().getName(),"attr");
+		assertEquals(res3.getAttrA().getState().getName(),"a1");
+		assertEquals(res3.getAttrB().getState().getName(),"c1");
+	}
 	
-
-	//Test Constants
-	this.updateDigest("Constant Tests");
-	res = AvatarPragma.createFromString("PublicConstant 1 0 a b", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
-	this.updateDigest("Right type :" + (res.get(0) instanceof AvatarPragmaConstant));
-	AvatarPragmaConstant res5 = (AvatarPragmaConstant) res.get(0);
-        this.updateDigest("Right number of constants " + (res5.getConstants().size() == 4));
-	for (int i=0; i< res5.getConstants().size(); i++){
-            this.updateDigest("Constant " + res5.getConstants().get(i).getName());
+	@Test
+	public void testPragmaAuthenticityMultipleCreation(){
+		res = AvatarPragma.createFromString("Authenticity B.b1.m C.c1.m", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);	
+		assertEquals(res.size(),2);
+		AvatarPragmaAuthenticity res3 = (AvatarPragmaAuthenticity) res.get(1);
+		assertEquals(res3.getAttrA().getAttribute().getName(),"m__b");
+		assertEquals(res3.getAttrB().getAttribute().getName(),"m__b");
+		assertEquals(res3.getAttrA().getState().getName(),"b1");
+		assertEquals(res3.getAttrB().getState().getName(),"c1");
+
+		res3 = (AvatarPragmaAuthenticity) res.get(0);
+		assertEquals(res3.getAttrA().getAttribute().getName(),"m__a");
+		assertEquals(res3.getAttrB().getAttribute().getName(),"m__a");
+		assertEquals(res3.getAttrA().getState().getName(),"b1");
+		assertEquals(res3.getAttrB().getState().getName(),"c1");
 	}
-	this.updateDigest("-------------------------------------");
-*/
 
-	//Avatar Specification Tests
+	@Test
+	public void testPragmaConstant(){
+		res = AvatarPragma.createFromString("PublicConstant 1 0 a b", bdpragma, blocks, typeAttributesMap, nameTypeMap, errorAcc);	
+		assertTrue(res.get(0) instanceof AvatarPragmaConstant);
+		AvatarPragmaConstant res5 = (AvatarPragmaConstant) res.get(0);
+        assertEquals(res5.getConstants().size(),2);
+		String[] attrs = new String[]{"a","b"};
+		for (int i=0; i< res5.getConstants().size(); i++){
+            assertEquals(res5.getConstants().get(i).getName(),attrs[i]);
+		}
+	}
+	
+	public void	test(){
 	
     }
+
     public static void main(String[] args){
         AvatarPragmaTests apt = new AvatarPragmaTests ();
         //apt.runTest ();
diff --git a/ttool/src/test/java/avatartranslator/AvatarSafetyTests.java b/ttool/src/test/java/avatartranslator/AvatarSafetyTests.java
index 1b9150373d9f96425c542fcacdc9357a79d678ab..83d8c656ae054e4c84b96be486c4ff180aae0a49 100644
--- a/ttool/src/test/java/avatartranslator/AvatarSafetyTests.java
+++ b/ttool/src/test/java/avatartranslator/AvatarSafetyTests.java
@@ -79,8 +79,13 @@ public class AvatarSafetyTests {
 		blocks = new ArrayList<AvatarBDBlock>();
 		as = new AvatarSpecification("avspec",null);
 		AvatarBlock A = new AvatarBlock("A", null, null);
+		avatartranslator.AvatarSignal sig = new avatartranslator.AvatarSignal("sig", 0, null);
+		A.addSignal(sig);
 		AvatarStateMachine Aasm = A.getStateMachine();
-		Aasm.addElement(new AvatarActionOnSignal("action_on_signal", null, null));
+		AvatarActionOnSignal aaos = new AvatarActionOnSignal("action_on_signal", sig, null);
+		aaos.setCheckLatency(true);
+		Aasm.addElement(aaos);
+
 		A.addAttribute(new AvatarAttribute("key1", AvatarType.INTEGER, A, null));
 		A.addAttribute(new AvatarAttribute("key2", AvatarType.INTEGER, A, null));
 
@@ -124,14 +129,16 @@ public class AvatarSafetyTests {
 	@Test
 	public void testFormLessThanPragma(){
 		//Test : Form pragma with less than expression
-		pragma = adpt.checkLatencyPragma("Lat(A.sig,A,sig)<1", blocks, as, null);
+		pragma = adpt.checkLatencyPragma("Latency(A.sig,A.sig)<1", blocks, as, null);
+		assertTrue(pragma !=null);
 	}
 
 
 	@Test
 	public void testFormGreaterThanPragma(){
 		//Test : Form pragma with greater than expression
-		pragma = adpt.checkLatencyPragma("Lat(A.sig,A,sig)>1", blocks, as, null);
+		pragma = adpt.checkLatencyPragma("Latency(A.sig,A.sig)>1", blocks, as, null);
+		assertTrue(pragma !=null);
 	}