diff --git a/src/fr/inrialpes/exmo/align/service/jade/JADEFIPAASRequesterAgent.java b/samples/service/JADE/JADEFIPAASRequesterAgent.java
similarity index 74%
rename from src/fr/inrialpes/exmo/align/service/jade/JADEFIPAASRequesterAgent.java
rename to samples/service/JADE/JADEFIPAASRequesterAgent.java
index 6daee0787f3067c16c3c8283704aae99c07cb734..7f83bf2f07d8389564f8a9194b9eec2e3d774298 100644
--- a/src/fr/inrialpes/exmo/align/service/jade/JADEFIPAASRequesterAgent.java
+++ b/samples/service/JADE/JADEFIPAASRequesterAgent.java
@@ -1,9 +1,7 @@
 package fr.inrialpes.exmo.align.service.jade;
 
-import org.semanticweb.owl.align.Parameters;
+import java.util.Iterator;
 
-import fr.inrialpes.exmo.align.service.ErrorMsg;
-import fr.inrialpes.exmo.align.service.Message;
 import jade.core.AID;
 import jade.core.behaviours.CyclicBehaviour;
 import jade.domain.DFService;
@@ -13,7 +11,6 @@ import jade.domain.FIPAAgentManagement.ServiceDescription;
 import jade.gui.GuiAgent;
 import jade.gui.GuiEvent;
 import jade.lang.acl.ACLMessage;
-import jade.lang.acl.MessageTemplate;
 import jade.util.Logger;
 
 public class JADEFIPAASRequesterAgent extends GuiAgent{
@@ -112,44 +109,16 @@ public class JADEFIPAASRequesterAgent extends GuiAgent{
 		toSend.addReceiver(AlignementAgent);
 		command = ev.getType();
 		toSend = setPerformative(toSend, command);
-		
-		switch (command){
-		//LOAD
-		case LOAD :
-			toSend=addArgument(toSend, (String)ev.getParameter(0));					
-			break;
-			//ALIGN
-		case ALIGN :
-			toSend=addArgument(toSend, (String)ev.getParameter(0));
-			toSend=addArgument(toSend, (String)ev.getParameter(1));
-			toSend=addArgument(toSend, (String)ev.getParameter(2));
-			toSend=addArgument(toSend, (String)ev.getParameter(3));			
-			break;
-			//RETRIEVE	
-		case RETRIEVE :
-			toSend=addArgument(toSend, (String)ev.getParameter(0));
-			toSend=addArgument(toSend, (String)ev.getParameter(1));
-			break;
-			//STORE	
-		case STORE :
-			toSend=addArgument(toSend, (String)ev.getParameter(0));
-			break;
-			//FIND	
-		case FIND :
-			toSend=addArgument(toSend, (String)ev.getParameter(0));
-			toSend=addArgument(toSend, (String)ev.getParameter(1));
-			break;
-		case CUT :
-			toSend=addArgument(toSend, (String)ev.getParameter(0));
-			toSend=addArgument(toSend, (String)ev.getParameter(1));
-			toSend=addArgument(toSend, (String)ev.getParameter(2));
-			break;
+		for(Iterator iter=ev.getAllParameter();iter.hasNext();){
+			//toSend=addArgument(toSend, (String)ev.getParameter(i));
+			String next=(String)iter.next();
 
-			//TODO ! METADATA & TRANSLATE
+			if (!(next.endsWith("="))){
+				toSend=addArgument(toSend,next);
+			}
 		}
 		myLogger.log(Logger.INFO, this.getLocalName() + "send : "+ toSend.getContent());
 		this.send(toSend);
-
 	}
 
 	void alertGui(Object response) {
diff --git a/src/fr/inrialpes/exmo/align/service/jade/JADEFIPAASRequesterAgentGUI.java b/samples/service/JADE/JADEFIPAASRequesterAgentGUI.java
similarity index 85%
rename from src/fr/inrialpes/exmo/align/service/jade/JADEFIPAASRequesterAgentGUI.java
rename to samples/service/JADE/JADEFIPAASRequesterAgentGUI.java
index cf3006de4ab6f428d8c6f41a9dfaed2bfce25208..9c5a850b821724ab7de486b9ac07b079e185c57b 100644
--- a/src/fr/inrialpes/exmo/align/service/jade/JADEFIPAASRequesterAgentGUI.java
+++ b/samples/service/JADE/JADEFIPAASRequesterAgentGUI.java
@@ -6,14 +6,9 @@ import java.awt.Rectangle;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.io.File;
-import java.util.Iterator;
-import java.util.Random;
 
 import javax.swing.BoxLayout;
 import javax.swing.JButton;
-import javax.swing.JCheckBox;
-import javax.swing.JFileChooser;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
@@ -103,7 +98,7 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 	private JPanel CUTAlignmentPane;
 	private JPanel CUTMethodPane;
 	private JPanel CUTThresholdPane;
-	
+
 	//METADATA PANE
 
 	//TRANSLATE PANE
@@ -143,7 +138,7 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 		ReplyPane = new JPanel();
 		reply = new JTextArea(20,50);
 		reply.setEditable(false);
-		
+
 		main = new JPanel();
 		main.setLayout(new BoxLayout(main, BoxLayout.PAGE_AXIS));
 
@@ -258,7 +253,7 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 		CUTMethodValue = new JTextField(30);
 		CUTThresholdLabel = new JLabel("Threshold");
 		CUTThresholdValue = new JTextField(30);
-		
+
 		CUTThresholdPane = new JPanel();
 		CUTAlignmentPane = new JPanel();
 		CUTMethodPane = new JPanel();
@@ -271,7 +266,7 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 		CUTPane.add(CUTAlignmentPane);
 		CUTPane.add(CUTMethodPane);
 		CUTPane.add(CUTThresholdPane);
-		
+
 //		----------------					
 		//METADATA PANE
 
@@ -285,9 +280,9 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 		onglets.addTab("Retrieve", RETRIEVEPane);
 		onglets.addTab("Store", STOREPane);
 		onglets.addTab("Find", FINDPane);
-		onglets.addTab("Cut", CUTPane);
 		onglets.addTab("Metadata", METADATAPane);
 		onglets.addTab("Translate", TRANSLATEPane);
+		onglets.addTab("Cut", CUTPane);
 		ReplyPane.add(reply);
 
 		main.add(onglets);		
@@ -308,7 +303,6 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 
 	public void actionPerformed(ActionEvent ae) {
 		int value=-1;
-		//String URLBase="file:///c:/FTRD/model/";
 		int ongletActif;
 		if (ae.getSource() == OKButton) {
 			ongletActif=onglets.getSelectedIndex()+1;
@@ -316,44 +310,45 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 			switch (ongletActif){
 			//LOAD
 			case LOAD :
-				ge.addParameter(LOADURLAlignmentValue.getText());					
+				ge.addParameter("url="+LOADURLAlignmentValue.getText());
+				ge.addParameter("id="+LOADURLAlignmentValue.getText());
 				break;
 				//ALIGN
 			case ALIGN :
-				ge.addParameter(ALIGNURLOnto1Value.getText());
-				ge.addParameter(ALIGNURLOnto2Value.getText());
-				ge.addParameter(ALIGNBaseAlignmentURLIDValue.getText());
-				ge.addParameter(ALIGNMethodValue.getText());
+				ge.addParameter("onto1="+ALIGNURLOnto1Value.getText());
+				ge.addParameter("onto2="+ALIGNURLOnto2Value.getText());
+				ge.addParameter("id="+ALIGNBaseAlignmentURLIDValue.getText());
+				ge.addParameter("method="+ALIGNMethodValue.getText());
 				break;
 				//RETRIEVE	
 			case RETRIEVE :
-				ge.addParameter(RETRIEVEAlignmentURLIDValue.getText());
-				ge.addParameter(RETRIEVERenderingMethodValue.getText());
+				ge.addParameter("id="+RETRIEVEAlignmentURLIDValue.getText());
+				ge.addParameter("method="+RETRIEVERenderingMethodValue.getText());
 				break;
 				//STORE	
 			case STORE :
-				ge.addParameter(STOREAlignmentURLIDValue.getText());
+				ge.addParameter("id="+STOREAlignmentURLIDValue.getText());
 				break;
 				//FIND	
 			case FIND :
-				ge.addParameter(FINDURLOnto1Value.getText());
-				ge.addParameter(FINDURLOnto1Value.getText());
+				ge.addParameter("onto1="+FINDURLOnto1Value.getText());
+				ge.addParameter("onto2="+FINDURLOnto1Value.getText());
 				break;
 				//CUT	
 			case CUT :
-				ge.addParameter(CUTAlignmentURLIDValue.getText());
-				ge.addParameter(CUTMethodValue.getText());
-				ge.addParameter(CUTThresholdValue.getText());
+				ge.addParameter("id="+CUTAlignmentURLIDValue.getText());
+				ge.addParameter("method="+CUTMethodValue.getText());
+				ge.addParameter("threshold="+CUTThresholdValue.getText());
 				break;
 				//TODO ! METADATA & TRANSLATE
 			}
-			
-			
+
+
 			myAgent.postGuiEvent(ge);
 		}else{
 			//???
 		}
-
+		cleanGUI();
 	}
 
 	void shutDown() {
@@ -381,11 +376,25 @@ public class JADEFIPAASRequesterAgentGUI  extends  javax.swing.JFrame implements
 	}
 
 
-	private void CleanGUI(){
-//		TODO
+	private void cleanGUI(){
+
+		reply.setText("");
+		LOADURLAlignmentValue.setText("");
+		ALIGNURLOnto1Value.setText("");
+		ALIGNURLOnto2Value.setText("");
+		ALIGNMethodValue.setText("");
+		ALIGNBaseAlignmentURLIDValue.setText("");
+		RETRIEVEAlignmentURLIDValue.setText("");
+		RETRIEVERenderingMethodValue.setText("");
+		STOREAlignmentURLIDValue.setText("");
+		FINDURLOnto1Value.setText("");
+		FINDURLOnto2Value.setText("");
+		CUTAlignmentURLIDValue.setText("");
+		CUTMethodValue.setText("");
+		CUTThresholdValue.setText("");
 
 	}
-	
+
 	public void showReply(String toshow){
 		reply.setText(toshow);
 	}
diff --git a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java
index 4caffc76392904abca881027638da1e04d790c0f..30bd297508a777606c441a588dd6f2f0348a5dba 100755
--- a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java
+++ b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java
@@ -21,21 +21,20 @@
 
 package fr.inrialpes.exmo.align.service.jade;
 
-import fr.inrialpes.exmo.align.service.jade.JadeFIPAAServiceAgent;
-import fr.inrialpes.exmo.align.service.AlignmentServiceProfile;
-import fr.inrialpes.exmo.align.service.AServProtocolManager;
-import fr.inrialpes.exmo.align.service.AServException;
-
-import org.semanticweb.owl.align.Parameters;
-
-import jade.core.Runtime;
 import jade.core.Profile;
 import jade.core.ProfileImpl;
+import jade.core.Runtime;
 import jade.util.Logger;
 import jade.wrapper.AgentContainer;
 import jade.wrapper.AgentController;
 import jade.wrapper.ControllerException;
 
+import org.semanticweb.owl.align.Parameters;
+
+import fr.inrialpes.exmo.align.service.AServException;
+import fr.inrialpes.exmo.align.service.AServProtocolManager;
+import fr.inrialpes.exmo.align.service.AlignmentServiceProfile;
+
 
 public class JadeFIPAAServProfile implements AlignmentServiceProfile {
 
diff --git a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java
index e4a60b3fdaed5f416328a24133f1a3dfd9300cd7..36f4fee7f2f393f24cd789b9d0fa3f4e7450f2c9 100755
--- a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java
+++ b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServiceAgent.java
@@ -23,14 +23,6 @@
 package fr.inrialpes.exmo.align.service.jade;
 
 
-import java.util.StringTokenizer;
-
-import org.semanticweb.owl.align.Parameters;
-
-import fr.inrialpes.exmo.align.impl.BasicParameters;
-import fr.inrialpes.exmo.align.service.AServProtocolManager;
-import fr.inrialpes.exmo.align.service.ErrorMsg;
-import fr.inrialpes.exmo.align.service.Message;
 import jade.core.Agent;
 import jade.core.behaviours.CyclicBehaviour;
 import jade.domain.DFService;
@@ -39,9 +31,14 @@ import jade.domain.FIPAAgentManagement.DFAgentDescription;
 import jade.domain.FIPAAgentManagement.ServiceDescription;
 import jade.lang.acl.ACLMessage;
 import jade.lang.acl.MessageTemplate;
-
 import jade.util.Logger;
 
+import org.semanticweb.owl.align.Parameters;
+
+import fr.inrialpes.exmo.align.service.AServProtocolManager;
+import fr.inrialpes.exmo.align.service.ErrorMsg;
+import fr.inrialpes.exmo.align.service.Message;
+
 public class JadeFIPAAServiceAgent extends Agent {
 
 	public static final String SERVICE_NAME = "Alignment";
@@ -78,100 +75,84 @@ public class JadeFIPAAServiceAgent extends Agent {
 
 				String perf; // performative
 				String info; //parameters
+				Parameters params = initialParameters;
 
 				MessageTemplate tpl =MessageTemplate.MatchPerformative(ACLMessage.REQUEST);
 				ACLMessage msg = myAgent.receive(tpl);
 				if (msg != null) {
-					//System.out.println("Alignement Agent " + myAgent.getLocalName() + " receive : " + msg.getContent() + " from "+ msg.getSender());
-					perf=msg.getContent().substring(0,msg.getContent().indexOf("::"));
-					info = msg.getContent().substring(msg.getContent().indexOf("::")+2, msg.getContent().length());
-
-//					---------------------------------------------------------					
-					//myLogger.log(Logger.INFO, "Received message: "+msg);
-					//Parameters params = new BasicParameters();
-
-					/**StringTokenizer tokenizer = new StringTokenizer(info,"::");
-					int count = tokenizer.countTokens();
-					while (tokenizer.hasMoreTokens()){
-					    String token = tokenizer.nextToken();}**/
-					String[] result = info.split("::");
-					/**for (int x=0; x<result.length; x++)
-						System.out.println(":: --------------" + result[x]);**/
-
-					Parameters params = initialParameters;
-
-					if (perf.equals("ALIGN")){
-						params.setParameter("onto1", result[0]);
-						params.setParameter("onto2", result[1]);
-						//params.setParameter("id", result[2]);
-						//params.setParameter("method", result[3]);
-						Message answer = manager.align(new Message(newId(), (Message)null,myId,serverId,"",params));
-						if(!(answer instanceof ErrorMsg)){
-							ACLMessage JADEanswer=msg.createReply();
-							msg.setPerformative(ACLMessage.INFORM);
-							JADEanswer.setContent(answer.getContent());
-							myAgent.send(JADEanswer);
-						}else{myLogger.log(Logger.WARNING, answer.getContent());}
-					}else if (perf.equals("LOAD")){
-						//params.setParameter("url", info);
-						//params.setParameter("id", info);
-						params.setParameter("url", result[0]);
-						//params.setParameter("id", result[0]);
-						Message answer = manager.load(new Message(newId(), (Message)null,myId,serverId,"",params));
-						if(!(answer instanceof ErrorMsg)){
-							ACLMessage JADEanswer=msg.createReply();
-							msg.setPerformative(ACLMessage.INFORM);
-							JADEanswer.setContent(answer.getContent());
-							myAgent.send(JADEanswer);
-						}else{myLogger.log(Logger.WARNING, answer.getContent());}
-					}else if (perf.equals("RETRIEVE")){
-						params.setParameter("id", result[0]);
-						params.setParameter("method", result[1]);
-						Message answer = manager.render(new Message(newId(), (Message)null,myId,serverId,"",params));
-						if(!(answer instanceof ErrorMsg)){
-							ACLMessage JADEanswer=msg.createReply();
-							msg.setPerformative(ACLMessage.INFORM);
-							JADEanswer.setContent(answer.getContent());
-							myAgent.send(JADEanswer);
-						}else{myLogger.log(Logger.WARNING, answer.getContent());}
-					}else if (perf.equals("TRANSLATE")){
-						//TODO
-					}else if (perf.equals("METADATA")){
-						//TODO
-					}else if (perf.equals("STORE")){
-						params.setParameter("id", result[0]);
-						Message answer = manager.store(new Message(newId(), (Message)null,myId,serverId,"",params));
-						if(!(answer instanceof ErrorMsg)){
-							ACLMessage JADEanswer=msg.createReply();
-							msg.setPerformative(ACLMessage.INFORM);
-							JADEanswer.setContent(answer.getContent());
-							myAgent.send(JADEanswer);
-						}else{myLogger.log(Logger.WARNING, answer.getContent());}
-					}else if (perf.equals("FIND")){
-						params.setParameter("onto1", result[0]);
-						params.setParameter("onto2", result[1]);
-						Message answer = manager.existingAlignments(new Message(newId(), (Message)null,myId,serverId,"",params));
-						if(!(answer instanceof ErrorMsg)){
-							ACLMessage JADEanswer=msg.createReply();
-							msg.setPerformative(ACLMessage.INFORM);
-							JADEanswer.setContent(answer.getContent());
-							myAgent.send(JADEanswer);
-						}else{myLogger.log(Logger.WARNING, answer.getContent());}
-					}else if (perf.equals("CUT")){
-						params.setParameter("id", result[0]);
-						params.setParameter("method", result[1]);
-						params.setParameter("threshold", result[2]);
-						Message answer = manager.cut(new Message(newId(), (Message)null,myId,serverId,"",params));
-						if(!(answer instanceof ErrorMsg)){
-							ACLMessage JADEanswer=msg.createReply();
-							msg.setPerformative(ACLMessage.INFORM);
-							JADEanswer.setContent(answer.getContent());
-							myAgent.send(JADEanswer);
-						}else{myLogger.log(Logger.WARNING, answer.getContent());}
-					}else {
-						ACLMessage reply = msg.createReply();
-						reply.setPerformative(ACLMessage.NOT_UNDERSTOOD);
-						myAgent.send(reply);
+					if (msg.getContent()!=null){
+						if (!(msg.getContent().equals(""))){
+							//System.out.println("Alignement Agent " + myAgent.getLocalName() + " receive : " + msg.getContent() + " from "+ msg.getSender());
+							perf=msg.getContent().substring(0,msg.getContent().indexOf("::"));
+							info = msg.getContent().substring(msg.getContent().indexOf("::")+2, msg.getContent().length());
+
+//							---------------------------------------------------------					
+							//myLogger.log(Logger.INFO, "Received message: "+msg);
+							//Parameters params = new BasicParameters();
+							if (!(perf.equals(""))){
+								if(!(info.equals(""))){
+									params = decodeMessage(info,params);												
+
+									if (perf.equals("ALIGN")){
+										Message answer = manager.align(new Message(newId(), (Message)null,myId,serverId,"",params));
+										if(!(answer instanceof ErrorMsg)){
+											ACLMessage JADEanswer=msg.createReply();
+											msg.setPerformative(ACLMessage.INFORM);
+											JADEanswer.setContent(answer.getContent());
+											myAgent.send(JADEanswer);
+										}else{myLogger.log(Logger.WARNING, answer.getContent());}
+									}else if (perf.equals("LOAD")){
+										Message answer = manager.load(new Message(newId(), (Message)null,myId,serverId,"",params));
+										if(!(answer instanceof ErrorMsg)){
+											ACLMessage JADEanswer=msg.createReply();
+											msg.setPerformative(ACLMessage.INFORM);
+											JADEanswer.setContent(answer.getContent());
+											myAgent.send(JADEanswer);
+										}else{myLogger.log(Logger.WARNING, answer.getContent());}
+									}else if (perf.equals("RETRIEVE")){
+										Message answer = manager.render(new Message(newId(), (Message)null,myId,serverId,"",params));
+										if(!(answer instanceof ErrorMsg)){
+											ACLMessage JADEanswer=msg.createReply();
+											msg.setPerformative(ACLMessage.INFORM);
+											JADEanswer.setContent(answer.getContent());
+											myAgent.send(JADEanswer);
+										}else{myLogger.log(Logger.WARNING, answer.getContent());}
+									}else if (perf.equals("TRANSLATE")){
+										//TODO
+									}else if (perf.equals("METADATA")){
+										//TODO
+									}else if (perf.equals("STORE")){
+										Message answer = manager.store(new Message(newId(), (Message)null,myId,serverId,"",params));
+										if(!(answer instanceof ErrorMsg)){
+											ACLMessage JADEanswer=msg.createReply();
+											msg.setPerformative(ACLMessage.INFORM);
+											JADEanswer.setContent(answer.getContent());
+											myAgent.send(JADEanswer);
+										}else{myLogger.log(Logger.WARNING, answer.getContent());}
+									}else if (perf.equals("FIND")){
+										Message answer = manager.existingAlignments(new Message(newId(), (Message)null,myId,serverId,"",params));
+										if(!(answer instanceof ErrorMsg)){
+											ACLMessage JADEanswer=msg.createReply();
+											msg.setPerformative(ACLMessage.INFORM);
+											JADEanswer.setContent(answer.getContent());
+											myAgent.send(JADEanswer);
+										}else{myLogger.log(Logger.WARNING, answer.getContent());}
+									}else if (perf.equals("CUT")){
+										Message answer = manager.cut(new Message(newId(), (Message)null,myId,serverId,"",params));
+										if(!(answer instanceof ErrorMsg)){
+											ACLMessage JADEanswer=msg.createReply();
+											msg.setPerformative(ACLMessage.INFORM);
+											JADEanswer.setContent(answer.getContent());
+											myAgent.send(JADEanswer);
+										}else{myLogger.log(Logger.WARNING, answer.getContent());}
+									}else {
+										ACLMessage reply = msg.createReply();
+										reply.setPerformative(ACLMessage.NOT_UNDERSTOOD);
+										myAgent.send(reply);
+									}
+								}
+							}
+						}
 					}
 				}
 				else {
@@ -210,5 +191,17 @@ public class JadeFIPAAServiceAgent extends Agent {
 
 	private int newId(){return localId++;}
 
+	private Parameters decodeMessage(String info, Parameters param){
+
+		Parameters toReturn = param;
+		String[] result = info.split("::");
+		for(int i=0;i<result.length;i++){
+			String[] arg=result[i].split("=");
+			toReturn.setParameter(arg[0], arg[1]);
+		}
+
+		return toReturn;
+	}
+
 
 }