diff --git a/src/main/java/ui/avatardd/ADDArtifact.java b/src/main/java/ui/avatardd/ADDArtifact.java
index bf19919efc4c984f6e6e31af9c47e3d5a481f0fb..f754d08efb3b90700d70796fb0ebee4df5c716d2 100755
--- a/src/main/java/ui/avatardd/ADDArtifact.java
+++ b/src/main/java/ui/avatardd/ADDArtifact.java
@@ -57,8 +57,8 @@ import java.awt.*;
  */
 public class ADDArtifact extends TGCWithoutInternalComponent implements SwallowedTGComponent, WithAttributes {
     protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
+//    protected int textX =  5;
+//    protected int textY =  15;
     protected int textY2 =  35;
     protected int space = 5;
     protected int fileX = 20;
@@ -71,10 +71,13 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
 
     public ADDArtifact(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-
+        
+        textY =  15;
+        textX =  5;
         width = 75;
         height = 40;
         minWidth = 75;
+        initScaling(75,40);
 
         nbConnectingPoint = 0;
         addTGConnectingPointsComment();
@@ -113,7 +116,7 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
         g.drawLine(x+width-space-cran, y+space, x+width-space-cran, y+space+cran);
         g.drawLine(x+width-space-cran, y+space+cran, x + width-space, y+space+cran);
 
-        g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
+        g.drawImage(scale(IconManager.img9), x + scale(width-space-fileX + 3), y + scale(space + 7), null);
 
         drawSingleString(g, value, x + textX , y + textY);
 
@@ -284,7 +287,8 @@ public class ADDArtifact extends TGCWithoutInternalComponent implements Swallowe
     public String getTaskName() {
         return taskName;
     }
-
+    
+    @Override
     public String getAttributes() {
         return "";
     }
diff --git a/src/main/java/ui/avatardd/ADDBlockArtifact.java b/src/main/java/ui/avatardd/ADDBlockArtifact.java
index a2ee363f441e0d44cf3ff8a0f7928c385b9547a6..6e94acb6ea26538b705fecf158f26c02db931f7c 100755
--- a/src/main/java/ui/avatardd/ADDBlockArtifact.java
+++ b/src/main/java/ui/avatardd/ADDBlockArtifact.java
@@ -58,8 +58,8 @@ import java.awt.*;
  */
 public class ADDBlockArtifact extends TGCWithoutInternalComponent implements SwallowedTGComponent {
     protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
+//    protected int textX =  5;
+//    protected int textY =  15;
     protected int textY2 =  35;
     protected int space = 5;
     protected int fileX = 20;
@@ -73,9 +73,12 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
     public ADDBlockArtifact(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
         
+        textY =  15;
+        textX =  5;
         width = 75;
         height = 40;
         minWidth = 75;
+        initScaling(75,40);
         
         nbConnectingPoint = 0;
         addTGConnectingPointsComment();
@@ -114,7 +117,7 @@ public class ADDBlockArtifact extends TGCWithoutInternalComponent implements Swa
         g.drawLine(x+width-space-cran, y+space, x+width-space-cran, y+space+cran);
         g.drawLine(x+width-space-cran, y+space+cran, x + width-space, y+space+cran);
 		
-		g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
+		g.drawImage(scale(IconManager.img9), x+scale(width-space-fileX + 3), y + scale(space + 7), null);
         
         drawSingleString(g, value, x + textX , y + textY);
         
diff --git a/src/main/java/ui/avatardd/ADDBridgeNode.java b/src/main/java/ui/avatardd/ADDBridgeNode.java
index f79bf229a70bb108acf9671b86ecce9f0189a196..63cc999a25c5ad099a6d0df7b120f76d56b2c8ac 100755
--- a/src/main/java/ui/avatardd/ADDBridgeNode.java
+++ b/src/main/java/ui/avatardd/ADDBridgeNode.java
@@ -56,7 +56,7 @@ import java.awt.*;
  * @author Ludovic APVRILLE
  */
 public class ADDBridgeNode extends ADDCommunicationNode implements WithAttributes {
-    private int textY1 = 15;
+//    private int textY1 = 15;
     private int textY2 = 30;
     private int derivationx = 2;
     private int derivationy = 3;
@@ -65,10 +65,13 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
     public ADDBridgeNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
         
+        //Issue #31
+        textY = 15;
         width = 250;
         height = 100;
         minWidth = 100;
         minHeight = 35;
+        initScaling(250,100);
         
         nbConnectingPoint = 16;
         connectingPoint = new TGConnectingPoint[16];
@@ -128,14 +131,15 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
         // Strings
         String ster = "<<" + stereotype + ">>";
         int w  = g.getFontMetrics().stringWidth(ster);
-        drawSingleString(g, ster, x + (width - w)/2, y + textY1);
+        drawSingleString(g, ster, x + (width - w)/2, y + textY);
         w  = g.getFontMetrics().stringWidth(name);
         drawSingleString(g, name, x + (width - w)/2, y + textY2);
 		
 		// Icon
 		//g.drawImage(IconManager.imgic1104.getImage(), x + width - 20, y + 4, null);
-		g.drawImage(IconManager.imgic1104.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        int borders = scale(4);
+		g.drawImage(scale(IconManager.imgic1104.getImage()), x + borders, y + borders, null);
+		g.drawImage(scale(IconManager.img9), x + width - scale(20), y + borders, null);
     }
     
     @Override
@@ -298,6 +302,7 @@ public class ADDBridgeNode extends ADDCommunicationNode implements WithAttribute
         }
     }
 
+    @Override
     public String getAttributes() {
     	String attr = "";
     	//attr += "Buffer size (in byte) = " + bufferByteDataSize + "\n";
diff --git a/src/main/java/ui/avatardd/ADDBusNode.java b/src/main/java/ui/avatardd/ADDBusNode.java
index 582466cd602986228f74ec1bff865cb74c72f250..c0b735748281932672533715e395fa0b7dc3239d 100755
--- a/src/main/java/ui/avatardd/ADDBusNode.java
+++ b/src/main/java/ui/avatardd/ADDBusNode.java
@@ -57,7 +57,7 @@ import java.awt.*;
    * @author Ludovic APVRILLE
  */
 public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
-    private int textY1 = 15;
+//    private int textY1 = 15;
     private int textY2 = 30;
     private int derivationx = 2;
     private int derivationy = 3;
@@ -71,12 +71,15 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
 
     public ADDBusNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-
+        
+        //issue #31
+        textY = 15;
         width = 250;
         height = 50;
         minWidth = 100;
         minHeight = 50;
-
+        initScaling(250, 50);
+        
         nbConnectingPoint = 16;
         connectingPoint = new TGConnectingPoint[16];
 
@@ -138,15 +141,16 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
         int w  = g.getFontMetrics().stringWidth(ster);
         Font f = g.getFont();
         g.setFont(f.deriveFont(Font.BOLD));
-        drawSingleString(g, ster, x + (width - w)/2, y + textY1);
+        drawSingleString(g, ster, x + (width - w)/2, y + textY);
         g.setFont(f);
         w  = g.getFontMetrics().stringWidth(name);
         drawSingleString(g, name, x + (width - w)/2, y + textY2);
 
         // Icon
         //g.drawImage(IconManager.imgic1102.getImage(), x + width - 20, y + 4, null);
-        g.drawImage(IconManager.imgic1102.getImage(), x + 4, y + 4, null);
-        g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+        int borders = scale(4);
+        g.drawImage(scale(IconManager.imgic1102.getImage()), x + borders, y + borders, null);
+        g.drawImage(scale(IconManager.img9), x + width - scale(20), y + borders, null);
     }
 
     @Override
@@ -360,6 +364,7 @@ public class ADDBusNode extends ADDCommunicationNode implements WithAttributes {
         }
     }
 
+    @Override
     public String getAttributes() {
         String attr = "";
         attr += "index = " + index + "\n";
diff --git a/src/main/java/ui/avatardd/ADDChannelArtifact.java b/src/main/java/ui/avatardd/ADDChannelArtifact.java
index e767e8d75dc9dadf2193b801e4e7ba792b89aca6..3590bfd53b7f127f314249c4d02c041f9938cc02 100755
--- a/src/main/java/ui/avatardd/ADDChannelArtifact.java
+++ b/src/main/java/ui/avatardd/ADDChannelArtifact.java
@@ -58,8 +58,8 @@ import java.awt.*;
  */
 public class ADDChannelArtifact extends TGCWithoutInternalComponent implements SwallowedTGComponent {
     protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
+//    protected int textX =  5;
+//    protected int textY =  15;
     protected int textY2 =  35;
     protected int space = 5;
     protected int fileX = 20;
@@ -73,11 +73,15 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
 
     public ADDChannelArtifact(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
-
+        
+        textY =  15;
+        textX =  5;
         width = 75;
         height = 40;
         minWidth = 75;
 
+        initScaling(75, 40);
+        
         nbConnectingPoint = 0;
         addTGConnectingPointsComment();
 
@@ -115,7 +119,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         g.drawLine(x+width-space-cran, y+space, x+width-space-cran, y+space+cran);
         g.drawLine(x+width-space-cran, y+space+cran, x + width-space, y+space+cran);
 
-        g.drawImage(IconManager.img9, x+width-space-fileX + 3, y + space + 7, null);
+        g.drawImage(scale(IconManager.img9), x+scale(width-space-fileX + 3), y + scale(space + 7), null);
 
         drawSingleString(g, value, x + textX , y + textY);
     }
@@ -298,6 +302,7 @@ public class ADDChannelArtifact extends TGCWithoutInternalComponent implements S
         return fullChannelName;
     }
 
+    @Override
     public String getStatusInformation() {
     	return "Name of the channel: " + fullChannelName;
     }
diff --git a/src/main/java/ui/avatardd/ADDClusterNode.java b/src/main/java/ui/avatardd/ADDClusterNode.java
index 721750154595d6c6294c39278ef82b84d8645c6e..01d05b68c6b1abeb1ef0c891b6da5b6a8821fce6 100644
--- a/src/main/java/ui/avatardd/ADDClusterNode.java
+++ b/src/main/java/ui/avatardd/ADDClusterNode.java
@@ -59,7 +59,7 @@ import java.awt.*;
  */
 
 public class ADDClusterNode extends ADDNode implements WithAttributes {
-	private int textY1 = 15;
+//	private int textY1 = 15;
 	private int textY2 = 30;
 	private int derivationx = 2;
 	private int derivationy = 3;
@@ -72,11 +72,13 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 	public ADDClusterNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
 		super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
+		textY = 15;
 		width = 250;
 		height = 200;
 		minWidth = 150;
 		minHeight = 100;
-
+		initScaling(250, 200);
+		
 		nbConnectingPoint = 16;
 		connectingPoint = new TGConnectingPoint[16];
 
@@ -135,16 +137,18 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		int w  = g.getFontMetrics().stringWidth(ster);
 		Font f = g.getFont();
 		g.setFont(f.deriveFont(Font.BOLD));
-		drawSingleString(g, ster, x + (width - w)/2, y + textY1);
+		drawSingleString(g, ster, x + (width - w)/2, y + textY);
 		g.setFont(f);
 		w  = g.getFontMetrics().stringWidth(name);
 		drawSingleString(g, name, x + (width - w)/2, y + textY2);
 
 		// Icon
-		g.drawImage(IconManager.imgic8006.getImage(), x + 4, y + 4, null);
-		g.drawImage(IconManager.img9, x + width - 20, y + 4, null);
+		int borders = scale(4);
+		g.drawImage(scale(IconManager.imgic8006.getImage()), x + borders, y + borders, null);
+		g.drawImage(scale(IconManager.img9), x + width - scale(20), y + borders, null);
 	}
 
+    @Override
 	public TGComponent isOnOnlyMe(int x1, int y1) {
 		Polygon pol = new Polygon();
 		pol.addPoint(x, y);
@@ -171,6 +175,7 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		return index;
 	}
 
+    @Override
 	public boolean editOndoubleClick(JFrame frame, int _x, int _y) {
 		int i;
 		MainGUI mgui = getTDiagramPanel().getMainGUI();
@@ -215,10 +220,12 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		return false;
 	}
 
+    @Override
 	public int getType() {
 		return TGComponentManager.ADD_CLUSTERNODE;
 	}
 
+    @Override
 	protected String translateExtraParam() {
 		StringBuffer sb = new StringBuffer("<extraparam>\n");
 		sb.append("<info stereotype=\"" + stereotype + "\" nodeName=\"" + name);
@@ -229,6 +236,7 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		return new String(sb);
 	}
 
+    @Override
 	public void loadExtraParam(NodeList nl, int decX, int decY, int decId) throws MalformedModelingException{
 		try {
 			NodeList nli;
@@ -266,10 +274,12 @@ public class ADDClusterNode extends ADDNode implements WithAttributes {
 		}
 	}
 
+    @Override
 	public int getDefaultConnector() {
 		return TGComponentManager.ADD_CONNECTOR;
 	}
 
+    @Override
 	public String getAttributes() {
 		String attr = "";
 		attr += "index = " + index + "\n";
diff --git a/src/main/java/ui/avatardd/ADDCommunicationNode.java b/src/main/java/ui/avatardd/ADDCommunicationNode.java
index 2cba7bfea06095d516dd42c93088e527cebee3a4..a79ff3650862e5d6f7932716b06cc5a6e211dd59 100755
--- a/src/main/java/ui/avatardd/ADDCommunicationNode.java
+++ b/src/main/java/ui/avatardd/ADDCommunicationNode.java
@@ -58,9 +58,8 @@ public abstract class ADDCommunicationNode extends ADDNode {
     public ADDCommunicationNode(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
     }
-    
-	
-	
+
+    @Override
     public int getDefaultConnector() {
   	return TGComponentManager.ADD_CONNECTOR;
   }
diff --git a/src/main/java/ui/avatardd/ADDConnector.java b/src/main/java/ui/avatardd/ADDConnector.java
index 07e0dcba19b413c8c1e071a3a6622ed9248ba92a..d6523bcb8b530170830f195a5dc12d4346890872 100755
--- a/src/main/java/ui/avatardd/ADDConnector.java
+++ b/src/main/java/ui/avatardd/ADDConnector.java
@@ -90,6 +90,7 @@ public  class ADDConnector extends TGConnector  {
     	return p2;
 	}
 
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
         /*JDialogTMLConnectorNode dialog = new JDialogTMLConnectorNode(frame, "Setting connector attributes", this);
 		dialog.setSize(350, 300);
@@ -104,7 +105,8 @@ public  class ADDConnector extends TGConnector  {
 			
 		return true;
     }
-    
+
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
     	  g.drawLine(x1, y1, x2, y2);
 
@@ -122,12 +124,14 @@ public  class ADDConnector extends TGConnector  {
     public boolean hasASpy() {
 	return hasASpy;
     }
-    
+
+    @Override
     public int getType() {
         return TGComponentManager.ADD_CONNECTOR;
     }
 
-    
+
+    @Override
     public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
         componentMenu.addSeparator();
         JMenuItem generate = null;
@@ -143,6 +147,7 @@ public  class ADDConnector extends TGConnector  {
         componentMenu.add(generate);
     }
 
+    @Override
     public boolean eventOnPopup(ActionEvent e) {
         String s = e.getActionCommand();
 	TraceManager.addDev("action: " + s);
@@ -157,7 +162,8 @@ public  class ADDConnector extends TGConnector  {
             
         return true;
     }
-    
+
+    @Override
     protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<spy value=\"" + hasASpy + "\" />\n");