diff --git a/Makefile b/Makefile
index e7f51e86bca8441979833078f3723411c75c562d..3cb3e5dccb4b9a27df5febc9b1c4d0fd88068e4c 100755
--- a/Makefile
+++ b/Makefile
@@ -443,14 +443,17 @@ updatesimulator:
 
 	cd /homes/apvrille/TechTTool/SystemCCode/generated/; make ultraclean
 
-test: $(TEST_MAKEFILES)
-	$(foreach m,$(TEST_MAKEFILES),$(MAKE) -s -C $(dir $(m)) -f $(TEST_MK);)
+test: basic $(TEST_DIRS)
 	@echo "Everything went fine"
 
 $(TEST_DIR)/%/$(TEST_MK): $(TEST_DIR)/$(TEST_MK)
 	@cp $< $@
 
+$(TEST_DIRS): %: %/$(TEST_MK) force
+	$(MAKE) -s -C $@ -f $(TEST_MK)
 
+.PHONY: force
+force:;
 
 publishjar: ttooljar
 	scp bin/ttool.jar apvrille@ssh.enst.fr:public_html/docs/
@@ -470,6 +473,7 @@ clean:
 		echo rm -f $$p/*.class;\
 		rm -f $(TTOOL_SRC)/$$p/*.class $(TTOOL_SRC)/$$p/*.java~; \
 	done
+	rm -f $(TEST_DIR)/*.class
 	@@for t in $(TEST_DIRS); do \
 		if [ -w $$t/$(TEST_MK) ]; \
 		then \
diff --git a/src/avatartranslator/AvatarPragma.java b/src/avatartranslator/AvatarPragma.java
index 87305e138cdd00f07f2b984dcb81891a36381452..cdb52238c67def856cc58fb00512daef2182efc2 100644
--- a/src/avatartranslator/AvatarPragma.java
+++ b/src/avatartranslator/AvatarPragma.java
@@ -68,7 +68,7 @@ public abstract class AvatarPragma extends AvatarElement {
         proofStatus = status;
     }
 
-    public static LinkedList<AvatarPragma> createFromString(String str, Object obj, LinkedList<AvatarBlock> blocks, HashMap<String, LinkedList<TAttribute>> typeAttributesMap, HashMap<String, String> nameTypeMap, AvatarDesignPanelTranslator.ErrorAccumulator errorAcc){
+    public static LinkedList<AvatarPragma> createFromString(String str, Object obj, LinkedList<AvatarBlock> blocks, HashMap<String, LinkedList<TAttribute>> typeAttributesMap, HashMap<String, String> nameTypeMap, ErrorAccumulator errorAcc){
         //createFromString takes in a pragma string (with # removed), the containing object, and the list of AvatarBlocks, and returns the corresponding AvatarPragma or null if an error occurred
         //The attributes referenced must exist 
 
diff --git a/src/avatartranslator/ErrorAccumulator.java b/src/avatartranslator/ErrorAccumulator.java
new file mode 100644
index 0000000000000000000000000000000000000000..39b50a28006ee757f9805dd55cb25b7cafa62f49
--- /dev/null
+++ b/src/avatartranslator/ErrorAccumulator.java
@@ -0,0 +1,50 @@
+/**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.
+ *
+ * /**
+ * Class ErrorAccumulator
+ * Creation: 02/08/2016
+ * @author Florian LUGOU
+ * @see
+ */
+
+package avatartranslator;
+
+public abstract class ErrorAccumulator {
+    public abstract void addWarning (String msg);
+    public abstract void addError (String msg);
+}
diff --git a/src/ui/AvatarDesignPanelTranslator.java b/src/ui/AvatarDesignPanelTranslator.java
index c8bb2d488eed74519eca4e2d93cff64692801e17..f035882564bbd882f259bce75a6ba07c8f2edaa8 100644
--- a/src/ui/AvatarDesignPanelTranslator.java
+++ b/src/ui/AvatarDesignPanelTranslator.java
@@ -127,7 +127,7 @@ public class AvatarDesignPanelTranslator {
         return as;
     }
 
-    public class ErrorAccumulator {
+    public class ErrorAccumulator extends avatartranslator.ErrorAccumulator {
         private TGComponent tgc;
         private TDiagramPanel tdp;
         private AvatarBlock ab;
diff --git a/tests/Avatar/AvatarPragmaTests.java b/tests/Avatar/AvatarPragmaTests.java
index 2d6633f8dc9e7283bc2d8a3c4673043d524c88e5..6eeae88e390653405bd2468e1804b2f3e5105479 100644
--- a/tests/Avatar/AvatarPragmaTests.java
+++ b/tests/Avatar/AvatarPragmaTests.java
@@ -46,9 +46,10 @@
 
 import java.util.LinkedList;
 import java.util.HashMap;
-import java.util.Vector;
+import java.util.LinkedList;
 
 import ui.TAttribute;
+import avatartranslator.ErrorAccumulator;
 import avatartranslator.AvatarStateMachine;
 import avatartranslator.AvatarState;
 import avatartranslator.AvatarAttribute;
@@ -97,7 +98,7 @@ public class AvatarPragmaTests extends TToolTest {
 	blocks.add(B);
         blocks.add(C);
 
-	HashMap<String, Vector> typeAttributesMap = new HashMap<String, Vector>();  
+	HashMap<String, LinkedList<TAttribute>> typeAttributesMap = new HashMap<String, LinkedList<TAttribute>>();  
         HashMap<String, String> nameTypeMap = new HashMap<String, String>();
 	LinkedList<AvatarPragma> res;
 
@@ -109,157 +110,162 @@ public class AvatarPragmaTests extends TToolTest {
 	nameTypeMap.put("C.m", "T1");
 	nameTypeMap.put("B.m", "T1");
 	nameTypeMap.put("C.d", "T2");
-	Vector t1s= new Vector();
-	Vector t2s= new Vector();
+	LinkedList<TAttribute> t1s = new LinkedList<TAttribute>();
+	LinkedList<TAttribute> t2s = new LinkedList<TAttribute>();
 	t1s.add(attr_a);
 	t1s.add(attr_b);
 	t2s.add(attr_c);
 	typeAttributesMap.put("T1", t1s);
 	typeAttributesMap.put("T2", t2s);	
 
+        ErrorAccumulator errorAcc = new ErrorAccumulator () {
+            public void addWarning (String s) { }
+            public void addError (String s) { }
+        };
+
 	//Test Bad keyword
-	res = AvatarPragma.createFromString("FakePragma A.key1", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("FakePragma A.key1", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Bad keyword: " + (res.size()==0));
 
 	//Handle whitespace
-	res = AvatarPragma.createFromString("Public      A.key1", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Public      A.key1", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Whitespace parsing: " + (res.size()!=0));
-	res = AvatarPragma.createFromString("Confidentiality   A.key1     B.key2", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Confidentiality   A.key1     B.key2", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Whitespace parsing: " + (res.size()!=0));
 
 	//Test missing block
-	res = AvatarPragma.createFromString("Confidentiality non.arrrrg", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Confidentiality non.arrrrg", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Missing Block: " + (res.size()==0));
-	res = AvatarPragma.createFromString("Confidentiality A.key1 B.key2 C.attr non.arrrrg", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Confidentiality A.key1 B.key2 C.attr non.arrrrg", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Missing Block: " + (res.size()==0));
 
 	//Test badly formed attribute
-	res = AvatarPragma.createFromString("Confidentiality attr", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Confidentiality attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Attribute formatting: " + (res.size()==0));
-	res = AvatarPragma.createFromString("Public A.a1.attr", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Public A.a1.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Attribute formatting: " + (res.size()==0));
 
 	//Test missing attribute
-	res = AvatarPragma.createFromString(" Confidentiality            ", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString(" Confidentiality            ", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Missing Attribute: " + (res.size()==0));
-	res = AvatarPragma.createFromString("Confidentiality A.arrrrg", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Confidentiality A.arrrrg", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Missing Attribute: " + (res.size()==0));
-	res = AvatarPragma.createFromString("Confidentiality C.attr C.attr B.key1 A.arrrrg", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Confidentiality C.attr C.attr B.key1 A.arrrrg", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Missing Attribute: " + (res.size()==0));
 	this.updateDigest("-------------------------------------");
 
 	//Test Confidentiality
 	this.updateDigest("Confidentiality Tests");
-	res = AvatarPragma.createFromString("Confidentiality A.key1", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("Confidentiality A.key1", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	//Check no error
 	this.updateDigest("No error: "+ (res.size()==1));
 	//Check Type
 	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaSecret));
 	//1 Attribute
-	this.updateDigest("# of Attributes: " + (res.get(0).getArgs().size() == 1));
-	this.updateDigest("Attr Name " + res.get(0).getArgs().get(0));
+	this.updateDigest("# of Attributes: " + (((AvatarPragmaSecret) res.get(0)).getArgs().size() == 1));
+	this.updateDigest("Attr Name " + ((AvatarPragmaSecret) res.get(0)).getArgs().get(0));
 	this.updateDigest("-------------------------------------");
 
 	//Test Secret
 	this.updateDigest("Secret Tests");
-	res = AvatarPragma.createFromString("Secret A.key1 A.key2", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("Secret A.key1 A.key2", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	//Check no error
 	this.updateDigest("No error: "+ (res.size()==1));
 	//Check Type
 	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaSecret));
 	//Attributes
-	this.updateDigest("# of Attributes: " + (res.get(0).getArgs().size() == 2));
-	this.updateDigest("Attr Name "+ (res.get(0).getArgs().get(0) +";"));
-	this.updateDigest("Attr Name "+ (res.get(0).getArgs().get(1)+";"));
+	this.updateDigest("# of Attributes: " + (((AvatarPragmaSecret) res.get(0)).getArgs().size() == 2));
+	this.updateDigest("Attr Name "+ (((AvatarPragmaSecret) res.get(0)).getArgs().get(0) +";"));
+	this.updateDigest("Attr Name "+ (((AvatarPragmaSecret) res.get(0)).getArgs().get(1)+";"));
 
 	//Composed Types
-	res = AvatarPragma.createFromString("Secret B.m C.d", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("Secret B.m C.d", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("No error: "+ (res.size()==1));
-	this.updateDigest("# of Attributes: " + (res.get(0).getArgs().size() == 3));
+	this.updateDigest("# of Attributes: " + (((AvatarPragmaSecret) res.get(0)).getArgs().size() == 3));
 	this.updateDigest("-------------------------------------");
 	
 	//Test Secrecy Assumption
 	this.updateDigest("SecrecyAssumption Tests");
-	res = AvatarPragma.createFromString("SecrecyAssumption A.key1 A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("SecrecyAssumption A.key1 A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	//Check no error
 	this.updateDigest("No error: "+ (res.size()==1));
 	//Check Type
 	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaSecrecyAssumption));
 	//Attributes
-	this.updateDigest("# of Attributes: " + (res.get(0).getArgs().size() == 4));
+	this.updateDigest("# of Attributes: " + (((AvatarPragmaSecrecyAssumption) res.get(0)).getArgs().size() == 4));
 	this.updateDigest("-------------------------------------");
 	
 	//Test System Knowledge
 	this.updateDigest("Initial System Knowledge Tests");
 
 	//Check composed types
-	res = AvatarPragma.createFromString("InitialSystemKnowledge B.key1 C.m", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("InitialSystemKnowledge B.key1 C.m", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	this.updateDigest("Fail if different types: "+ (res.size()==0));
-	res = AvatarPragma.createFromString("InitialSystemKnowledge B.d C.m", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("InitialSystemKnowledge B.d C.m", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	this.updateDigest("Fail if different types: "+ (res.size()==0));
 
-	res = AvatarPragma.createFromString("InitialSystemKnowledge A.key1 A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("InitialSystemKnowledge A.key1 A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	//Check no error
 	this.updateDigest("No error: "+ (res.size()!=0));
 	//Check Type
 	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaInitialKnowledge));
 	//Attributes
-	this.updateDigest("# of Attributes: " + (res.get(0).getArgs().size() == 4));
+	this.updateDigest("# of Attributes: " + (((AvatarPragmaInitialKnowledge) res.get(0)).getArgs().size() == 4));
 	//Is system
 	AvatarPragmaInitialKnowledge res2 = (AvatarPragmaInitialKnowledge) res.get(0);
 	this.updateDigest("Is System: " + res2.isSystem());
 
 	//Check multiple creation
-	res = AvatarPragma.createFromString("InitialSystemKnowledge B.m C.m", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("InitialSystemKnowledge B.m C.m", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	this.updateDigest("Multiple creation: "+ (res.size()==2));
-	this.updateDigest("Attr Name " + res.get(0).getArgs().get(0));
-	this.updateDigest("Attr Name " + res.get(0).getArgs().get(1));
-	this.updateDigest("Attr Name " + res.get(1).getArgs().get(0));
-	this.updateDigest("Attr Name " + res.get(1).getArgs().get(1));
+	this.updateDigest("Attr Name " + ((AvatarPragmaInitialKnowledge) res.get(0)).getArgs().get(0));
+	this.updateDigest("Attr Name " + ((AvatarPragmaInitialKnowledge) res.get(0)).getArgs().get(1));
+	this.updateDigest("Attr Name " + ((AvatarPragmaInitialKnowledge) res.get(1)).getArgs().get(0));
+	this.updateDigest("Attr Name " + ((AvatarPragmaInitialKnowledge) res.get(1)).getArgs().get(1));
 	this.updateDigest("-------------------------------------");
 
 	//Test Session Knowledge
 	this.updateDigest("Initial Session Knowledge Tests");
-	res = AvatarPragma.createFromString("InitialSessionKnowledge A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("InitialSessionKnowledge A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	//Check no error
 	this.updateDigest("No error: "+ (res.size()==1));
 	
 	//Check Type
 	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaInitialKnowledge));
 	//# Attributes
-	this.updateDigest("# of Attributes: " + (res.get(0).getArgs().size() == 3));
+	this.updateDigest("# of Attributes: " + (((AvatarPragmaInitialKnowledge) res.get(0)).getArgs().size() == 3));
 	//Is session
 	res2 = (AvatarPragmaInitialKnowledge) res.get(0);
 	this.updateDigest("Is Session: " + !res2.isSystem());
 
 	//Test for error on different base types
-	res = AvatarPragma.createFromString("InitialSessionKnowledge A.key2 B.key2",null, blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("InitialSessionKnowledge A.key2 B.key2",null, blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("Fail on different base types " + (res.size()==0));
 	this.updateDigest("-------------------------------------");
 
 	//Test PrivatePublicKey
 	this.updateDigest("PrivatePublicKeys Tests");
 	//Fail if wrong # of args
-	res = AvatarPragma.createFromString("PrivatePublicKeys C.attr", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("PrivatePublicKeys C.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	this.updateDigest("PrivatePublicKeys args count " + (res.size()==0));
-	res = AvatarPragma.createFromString("PrivatePublicKeys A.key1 A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("PrivatePublicKeys A.key1 A.key2 B.key1 C.attr", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	this.updateDigest("PrivatePublicKeys args count " + (res.size()==0));
 	//Check no error
-	res = AvatarPragma.createFromString("PrivatePublicKeys A key2 key1", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("PrivatePublicKeys A key2 key1", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	this.updateDigest("No error: "+ (res.size()!=0));
 	//Check Type
 	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaPrivatePublicKey));
 	//Attributes
 	AvatarPragmaPrivatePublicKey res4 = (AvatarPragmaPrivatePublicKey) res.get(0);
-	this.updateDigest("# of Attributes: " + (res4.getArgs().size() == 2));
+	// this.updateDigest("# of Attributes: " + (res4.getArgs().size() == 2));
 	this.updateDigest("Attr Name "+ res4.getPublicKey());
 	this.updateDigest("Attr Name "+ res4.getPrivateKey());
 
 	//Handle composed types
-	res = AvatarPragma.createFromString("PrivatePublicKeys C attr d", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("PrivatePublicKeys C attr d", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("PrivatePublicKeys composed types " + (res.size()!=0));
 	//Fail if more than 1 field
-	res = AvatarPragma.createFromString("PrivatePublicKeys C attr m", null,blocks, typeAttributesMap, nameTypeMap);
+	res = AvatarPragma.createFromString("PrivatePublicKeys C attr m", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);
 	this.updateDigest("PrivatePublicKeys multiple fields " + (res.size()==0));
 
 	
@@ -267,43 +273,43 @@ public class AvatarPragmaTests extends TToolTest {
 
 	//Test Public
 	this.updateDigest("Public Tests");
-	res = AvatarPragma.createFromString("Public A.key1 B.key2", null,blocks, typeAttributesMap, nameTypeMap);	
+	res = AvatarPragma.createFromString("Public A.key1 B.key2", null,blocks, typeAttributesMap, nameTypeMap, errorAcc);	
 	//Check no error
 	this.updateDigest("No error: "+ (res.size()!=0));
 	//Check Type
 	this.updateDigest("Right Type: " + (res.get(0) instanceof AvatarPragmaPublic));
 	//1 Attribute
-	this.updateDigest("# of Attributes: " + (res.get(0).getArgs().size() == 2));
-	this.updateDigest("Attr Name " + res.get(0).getArgs().get(0));
-	this.updateDigest("Attr Name " + res.get(0).getArgs().get(1));
+	this.updateDigest("# of Attributes: " + (((AvatarPragmaPublic) res.get(0)).getArgs().size() == 2));
+	this.updateDigest("Attr Name " + ((AvatarPragmaPublic) res.get(0)).getArgs().get(0));
+	this.updateDigest("Attr Name " + ((AvatarPragmaPublic) res.get(0)).getArgs().get(1));
 	this.updateDigest("-------------------------------------");
 	
 	//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);	
+	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);	
+	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);	
+	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);
+	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);
+	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);
+	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);	
+	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("# of Attributes: " + (res3.getArgs().size() == 2));
 	//this.updateDigest("Attr "+ res3.getAttrA());
 	//this.updateDigest("Attr "+ res3.getAttrB());
 	this.updateDigest("Attr Name "+ res3.getAttrA().getName());
@@ -311,10 +317,10 @@ public class AvatarPragmaTests extends TToolTest {
 	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);	
+	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("# of Attributes: " + (res3.getArgs().size() == 2));
 	//this.updateDigest("Attr "+ res3.getAttrA());
 	//this.updateDigest("Attr "+ res3.getAttrB());
 	this.updateDigest("Attr Name "+ res3.getAttrA().getName());
@@ -322,7 +328,7 @@ public class AvatarPragmaTests extends TToolTest {
 	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("# 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());
@@ -332,7 +338,7 @@ public class AvatarPragmaTests extends TToolTest {
 
 	//Test Constants
 	this.updateDigest("Constant Tests");
-	res = AvatarPragma.createFromString("Constant 1 0 a b", null,blocks, typeAttributesMap, nameTypeMap);	
+	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));
@@ -345,8 +351,8 @@ public class AvatarPragmaTests extends TToolTest {
 	//Avatar Specification Tests
 	
 	this.updateDigest("Tests finished");
-	//this.printDigest();
-	if (!this.testDigest (new byte[] {-90, 49, 84, 60, -76, -16, -13, 79, -65, -123, 61, -9, 38, 110, -27, 80, 19, -15, 82, -36}))
+	// this.printDigest();
+	if (!this.testDigest (new byte[] {-20, 106, 33, 29, -66, -82, 7, 48, 95, -57, -92, -121, 42, 126, 78, -57, 91, 21, 8, 120}))
            this.error ("Unexpected result when testing AvatarPragmas...");
     }
     public static void main(String[] args){