diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarDataTypePrimitiveFields.java b/src/main/java/avatartranslator/AvatarDataTypePrimitiveFields.java
similarity index 87%
rename from src/main/java/avatartranslator/tosysmlv2/AvatarDataTypePrimitiveFields.java
rename to src/main/java/avatartranslator/AvatarDataTypePrimitiveFields.java
index ecb984f24b5a1b6fdaef7d81e75a6557eda113b6..bcf28bcfafd84cc7bdf8c2a655f378fa22a92341 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarDataTypePrimitiveFields.java
+++ b/src/main/java/avatartranslator/AvatarDataTypePrimitiveFields.java
@@ -1,8 +1,4 @@
-package avatartranslator.tosysmlv2;
-
-import avatartranslator.AvatarAttribute;
-import avatartranslator.AvatarDataType;
-import avatartranslator.AvatarType;
+package avatartranslator;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -12,7 +8,7 @@ public class AvatarDataTypePrimitiveFields {
     public static class Field {
         private String name;
         private AvatarType type;
-        protected Field(String _name, AvatarType _type) {
+        public Field(String _name, AvatarType _type) {
             name = _name;
             type = _type;
         }
@@ -23,7 +19,7 @@ public class AvatarDataTypePrimitiveFields {
     public AvatarDataTypePrimitiveFields() {
         fields = new ArrayList<Field>();
     }
-    public int getSize() { return fields.size(); }
+    public int size() { return fields.size(); }
     public boolean addField (String name, AvatarType type) {
         if(name == null || type == null) return false;
         for(Field f : fields) if (f.getName().equals(name)) return false;
@@ -43,6 +39,11 @@ public class AvatarDataTypePrimitiveFields {
             aa = dt.getAttributes().get(i);
             if (aa.getType() == AvatarType.INTEGER) primitiveFields.addField(aa.getName(), AvatarType.INTEGER);
             else if (aa.getType() == AvatarType.BOOLEAN)  primitiveFields.addField(aa.getName(), AvatarType.BOOLEAN);
+            else if (aa.getType() == AvatarType.TIMER) {
+                if (err != null) err.add("type timer unauthorized for field " + aa.getName() + " in datatype " + dt.getName() +
+                        "(set to integer)");
+                primitiveFields.addField(aa.getName(), AvatarType.INTEGER);
+            }
             else {
                 AvatarDataType adt = aa.getDataType();
                 if (adt == null) {
@@ -69,7 +70,7 @@ public class AvatarDataTypePrimitiveFields {
                 buildPrimitiveFields(adt, map, l, err);
                 l.remove(l.size() - 1);
                 AvatarDataTypePrimitiveFields fields = map.get(adt);
-                for (int j = 0; j < fields.getSize(); j++) {
+                for (int j = 0; j < fields.size(); j++) {
                     primitiveFields.addField(aa.getName() + "__" + fields.getName(j), fields.getType(j));
                 }
             }
diff --git a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
index 1588525a89e2a680a39f25d9fa98f1b4adda680c..f3d81ea268941d335829901438603831529e81ec 100644
--- a/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
+++ b/src/main/java/avatartranslator/tosysmlv2/AvatarFromSysML.java
@@ -256,7 +256,7 @@ public class AvatarFromSysML {
         public void accept(AvatarAttribute aa, String dt) {
             AvatarDataType adt = dataTypeMap.get(dt);
             if (adt == null) {
-                errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, "datatype " + dt + "in datatype field " +
+                errors.add(new AvatarFromSysMLError(AvatarFromSysMLError.HIGHERROR, "datatype " + dt + " in datatype field " +
                         aa.getName() + " is undefined"));
                 aa.setType(AvatarType.INTEGER);
             }
@@ -322,7 +322,7 @@ public class AvatarFromSysML {
                     aa.setDataType(adt);
                     String aaName =  a.getName() + "__";
                     AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt);
-                    int dtsize = primitiveFields.getSize();
+                    int dtsize = primitiveFields.size();
                     for (int j = 0; j < dtsize; j++) {
                         ax = new AvatarAttribute(aaName + primitiveFields.getName(j),
                                 primitiveFields.getType(j), theBlock, null);
@@ -404,7 +404,7 @@ public class AvatarFromSysML {
                     ret.setDataType(adt);
                     am.addOriginalReturnParameter(ret);
                     AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt);
-                    int dtsize = primitiveFields.getSize();
+                    int dtsize = primitiveFields.size();
                     for (int j = 0; j < dtsize; j++) {
                         ret = new AvatarAttribute("return__" + j,
                                  primitiveFields.getType(j), theBlock, null);
@@ -947,7 +947,7 @@ public class AvatarFromSysML {
                 aa.setAsConstant(false);
                 aaName = aaName + "__";
                 AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt);
-                int dtsize = primitiveFields.getSize();
+                int dtsize = primitiveFields.size();
                 for (int j = 0; j < dtsize; j++) {
                     aa = new AvatarAttribute(aaName + primitiveFields.getName(j),
                              primitiveFields.getType(j), b, null);
@@ -1015,7 +1015,7 @@ public class AvatarFromSysML {
     private String extendName(String name, AvatarDataType adt) {
         if (adt != null) {
             AvatarDataTypePrimitiveFields primitiveFields = primitiveFieldsMap.get(adt);
-            int size = primitiveFields.getSize() -1;
+            int size = primitiveFields.size() -1;
             StringBuffer res = new StringBuffer();
             int i;
             for (i = 0; i < size; i++)
diff --git a/src/main/java/ui/AvatarDesignPanelTranslator.java b/src/main/java/ui/AvatarDesignPanelTranslator.java
index b9d8a8c72853843b94f53ccda0595d36bb06caee..ebca34de2bfce4152c6edc4a5e442eae1859b6ae 100644
--- a/src/main/java/ui/AvatarDesignPanelTranslator.java
+++ b/src/main/java/ui/AvatarDesignPanelTranslator.java
@@ -1115,7 +1115,7 @@ public class AvatarDesignPanelTranslator {
             AvatarDataType adt = new AvatarDataType(type.getDataTypeName(), type);
             for(TAttribute ta: type.getAttributeList()) {
                 AvatarAttribute aa;
-                if (ta.getType() == TAttribute.INTEGER)
+                if (ta.getType() == TAttribute.INTEGER || ta.getType() == TAttribute.NATURAL)
                     aa = new AvatarAttribute(ta.getName(), AvatarType.INTEGER, null, type);
                 else if (ta.getType() == TAttribute.BOOLEAN)
                     aa = new AvatarAttribute(ta.getName(), AvatarType.BOOLEAN, null, type);
@@ -1123,7 +1123,7 @@ public class AvatarDesignPanelTranslator {
                     aa = new AvatarAttribute(ta.getName(), AvatarType.UNDEFINED, null, type);
                     attributeMap.put(aa, ta.getTypeOther().trim());
                 }
-                else { // ERROR, should not happen
+                else { // ERROR, should not happen ??
                     addCheckingError(new CheckingError(CheckingError.STRUCTURE_ERROR,
                             "Unauthorized type for field " + ta.getId() + " of datatype " + type.getDataTypeName()));
                     aa = new AvatarAttribute(ta.getName(), AvatarType.INTEGER, null, type);