diff --git a/pom.xml b/pom.xml
index a2414c92c9598d283a9f0c05b22314012af691ee..2ce3239385f8d9cae655f95bd68a56865d6932ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,6 +41,7 @@
     <groupId>org.glassfish.jersey.media</groupId>
     <artifactId>jersey-media-multipart</artifactId>
     <version>2.33</version>
+    
 </dependency>
         <dependency>
             <groupId>junit</groupId>
diff --git a/src/main/java/fil/sr2/endpoints/ServiceFTPEndPoint.java b/src/main/java/fil/sr2/endpoints/ServiceFTPEndPoint.java
index 23228e8d5e4358078f41c70d7978ab9914c3abb7..3cd7baf216626e63296111ebbfc54cc4e5cebf3b 100644
--- a/src/main/java/fil/sr2/endpoints/ServiceFTPEndPoint.java
+++ b/src/main/java/fil/sr2/endpoints/ServiceFTPEndPoint.java
@@ -174,7 +174,45 @@ public class ServiceFTPEndPoint {
 		}
 		return Response.ok(file).header("Content-Disposition", "attachment; filename=\"" + filename + "\"").build();
 	}
+	
+	
+	@GET
+	@Secured
+	@Path("{alias}/file/last-modified/{path: .*}")
+	@Produces(MediaType.TEXT_PLAIN)
+	public Response getLastDateFile(@PathParam("alias") String alias, @PathParam("path") String path,
+			@DefaultValue("anonymous") @HeaderParam("username") String username,
+			@DefaultValue("anonymous") @HeaderParam("password") String psw,
+			@DefaultValue("pasv") @HeaderParam("mode") String mode,
+			@DefaultValue("FTPS") @HeaderParam("type") String type, @DefaultValue("21") @HeaderParam("port") int port) {
 
+		Response r = init(alias, type, username, psw, mode, port);
+		if (!(r.getStatus() == Response.Status.ACCEPTED.getStatusCode())) {// on verifie que l'init s'est bien passer
+			return r;
+		}
+		String date;
+		try {
+			
+			date = ftp.getModificationTime(path);
+			if(date ==null) {
+				return Response.status(Response.Status.FORBIDDEN)
+						.entity("file " + path + " not exist on the ftp server ")
+						.build();
+			}
+			System.out.println(date);
+			
+		} catch (IOException e) {
+			return Response.status(Response.Status.FORBIDDEN)
+					.entity("file " + path + " not exist on the ftp server or you don't have the right to download it")
+					.build();
+		} finally {
+			try {
+				ftp.disconnect();
+			} catch (IOException e) {
+			}
+		}
+		return Response.ok(date).build();
+	}
 	/*
 	 * Méthode non fonctionnel qui permet de récuperer un dossier, de le zipper et
 	 * de l'envoyer au client
@@ -352,6 +390,42 @@ public class ServiceFTPEndPoint {
 		}
 		return Response.ok("successfully renamed to " + rename).build();
 	}
+	
+	
+	
+	
+	
+	@PUT
+	@Secured
+	@Path("{alias}/relocate/{path: .*}")
+	@Produces(MediaType.TEXT_PLAIN)
+	public Response relocate(@PathParam("alias") String alias, @PathParam("path") String path,
+			@DefaultValue("anonymous") @HeaderParam("username") String username,
+			@DefaultValue("anonymous") @HeaderParam("password") String psw,
+			@DefaultValue("pasv") @HeaderParam("mode") String mode,
+			@DefaultValue("FTP") @HeaderParam("type") String type, @QueryParam("to") String rename,
+			@DefaultValue("21") @HeaderParam("port") int port) {
+		Response r = init(alias, type, username, psw, mode, port);
+		if (!(r.getStatus() == Response.Status.ACCEPTED.getStatusCode())) {// on verifie que l'init s'est bien passer
+			return r;
+		}
+//		if (path.endsWith("/")) {
+//			path = path.substring(0, path.length() - 1);
+//		}
+		try {
+			if (!ftp.rename(path, rename)) {
+				return Response.status(Response.Status.BAD_REQUEST).build();
+			}
+		} catch (IOException e) {
+			return Response.status(Response.Status.FORBIDDEN).entity("can't rename one file " + path + "!").build();
+		} finally {
+			try {
+				ftp.disconnect();
+			} catch (IOException e) {
+			}
+		}
+		return Response.ok("successfully renamed to " + rename).build();
+	}
 
 	/**
 	 * Methode qui permet d'upload un fichier sur le serveur, pour envoyer un
diff --git a/src/main/java/fil/sr2/utils/Utils.java b/src/main/java/fil/sr2/utils/Utils.java
index f206dfa4670bf0b054e40a5af7472650c0a0cc31..a5f435eda91297fe6d8d098671404be9cb997107 100644
--- a/src/main/java/fil/sr2/utils/Utils.java
+++ b/src/main/java/fil/sr2/utils/Utils.java
@@ -8,6 +8,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.PrintWriter;
 import java.net.SocketException;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
@@ -15,7 +16,7 @@ import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-
+import org.apache.commons.net.PrintCommandListener;
 import org.apache.commons.net.ftp.FTP;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPFile;
@@ -45,6 +46,8 @@ public class Utils {
 
 			if (file.isDirectory()) {
 				details = "[" + details + "]";
+			}else {
+				details = "<" + details + ">";
 			}
 			details += "    " + file.getSize();
 			details += "    " + file.getUser();
@@ -180,6 +183,7 @@ public class Utils {
 		f.login(username, psw);
 		f.sendCommand("PBSZ 0");
 		f.sendCommand("PROT P");
+		f.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
 		if (mode.equals("pasv")) {
 			f.enterLocalPassiveMode();
 		} else if (!mode.equals("port")) {