diff --git a/tp/src/main/java/com/example/tpfx/Contact.java b/tp/src/main/java/com/example/tpfx/Contact.java
index 87c0d8a5b3393cf93298537e196628f61ef38cea..19dbfc6d468189c589314b0ddf1edc9a032843a0 100644
--- a/tp/src/main/java/com/example/tpfx/Contact.java
+++ b/tp/src/main/java/com/example/tpfx/Contact.java
@@ -126,8 +126,8 @@ public class Contact implements Comparable<Contact>{
             w_social += elem + " ";
         }
 
-        return String.valueOf(id) + " - " + w_names + " - " + this.last_name + " - " + this.addr + " - " + w_phone + " - " + w_email + " - "
-                + w_social + " - " + this.job;
+        return String.valueOf(id) + " - " + w_names + "- " + this.last_name + " - " + this.addr + " - " + w_phone
+                + "- " + w_email + "- " + w_social + "- " + this.job;
     }
     @Override
     public int compareTo(Contact c){
diff --git a/tp/src/main/java/com/example/tpfx/Family.java b/tp/src/main/java/com/example/tpfx/Family.java
index 0b154a2e028a4ece231489014cb4ecc2f5f73a5c..0242b5543bd15bd7336d4d205a4f0f07ce7ec662 100644
--- a/tp/src/main/java/com/example/tpfx/Family.java
+++ b/tp/src/main/java/com/example/tpfx/Family.java
@@ -36,7 +36,7 @@ public class Family extends Contact{
             w_social += elem + " ";
         }
 
-        return String.valueOf(id) + " - " + w_names + " - " + this.last_name + " - " + this.addr + " - " + w_phone + " - " + w_email + " - "
-                + w_social + " - " + this.job + " - " + this.relation;
+        return String.valueOf(id) + " - " + w_names + "- " + this.last_name + " - " + this.addr + " - " + w_phone
+                + "- " + w_email + "- " + w_social + "- " + this.job + " - " + this.relation;
     }
 }
diff --git a/tp/src/main/java/com/example/tpfx/HelloController.java b/tp/src/main/java/com/example/tpfx/HelloController.java
index 17a79304ae3717410b466bab329a0ffed6d5c50e..92266597be694be8e66edf02befe6f3b4572612d 100644
--- a/tp/src/main/java/com/example/tpfx/HelloController.java
+++ b/tp/src/main/java/com/example/tpfx/HelloController.java
@@ -8,10 +8,13 @@ import javafx.scene.control.*;
 
 import java.io.*;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class HelloController {
     static ArrayList<Contact> contactArray = new ArrayList<Contact>();
     int selectedID = 0;
+    boolean imported = false;
     ObservableList<String> ctType = FXCollections.observableArrayList("Friend", "Family", "Professional");
     @FXML
     private TextField txtFirst;
@@ -59,6 +62,7 @@ public class HelloController {
         txtOther.setVisible(false);
         btnEdit.setDisable(true);
         btnDelete.setDisable(true);
+        btnAdd.setDisable(true);
     }
     @FXML
     protected void AddCt() {
@@ -131,16 +135,16 @@ public class HelloController {
             for (Contact c: contactArray){
                 List<String> str_array = SplitLine(c.toString(), " - ");
                 writer.write(c.get_type() + "\n");
-                writer.write(String.valueOf(c.getId()) + "/");
                 writer.write(str_array.get(0) + "/");
                 writer.write(str_array.get(1) + "/");
                 writer.write(str_array.get(2) + "/");
                 writer.write(str_array.get(3) + "/");
                 writer.write(str_array.get(4) + "/");
                 writer.write(str_array.get(5) + "/");
-                writer.write(str_array.get(6));
+                writer.write(str_array.get(6) + "/");
+                writer.write(str_array.get(7));
                 if(c.get_type().equals("Family") || c.get_type().equals("Professional")){
-                    writer.write("/" + str_array.get(7) + "\n");
+                    writer.write("/" + str_array.get(8) + "\n");
                 } else{
                     writer.write("/" + "\n");
                 }
@@ -152,10 +156,12 @@ public class HelloController {
     }
     @FXML
     protected void Search() {
+        Pattern pat = Pattern.compile(txtSearch.getText());
         LstCt.getItems().clear();
         for(Contact c: contactArray){
             for(String n: c.getFirst_name()){
-                if(n.equals(txtSearch.getText())){
+                Matcher match = pat.matcher(n);
+                if(match.find()){
                     LstCt.getItems().add(c);
                 }
             }
@@ -199,6 +205,9 @@ public class HelloController {
             lblOther.setVisible(false);
             cbxType.setValue("Friend");
         }
+        cbxType.setDisable(true);
+        imported = true;
+        TestFields();
     }
     @FXML
     protected void Delete() {
@@ -231,6 +240,24 @@ public class HelloController {
         ShowAll();
     }
     @FXML
+    public void TestFields(){
+        Pattern pat = Pattern.compile(txtEmail.getText());
+        Matcher match = pat.matcher("^(.+)@(.+)$*");
+
+        if(txtFirst.getText() != "" && txtLast.getText() != "" && match.find()){
+            if(imported){
+                btnEdit.setDisable(false);
+                btnAdd.setDisable(false);
+            } else{
+                btnEdit.setDisable(true);
+                btnAdd.setDisable(false);
+            }
+        } else {
+            btnEdit.setDisable(true);
+            btnAdd.setDisable(true);
+        }
+    }
+    @FXML
     protected void ShowAll() {
         int cpt = 0;
         for(Contact cont: contactArray){
@@ -241,6 +268,16 @@ public class HelloController {
         for(Contact c: contactArray){
             LstCt.getItems().add(c.toString());
         }
+        txtFirst.setText("");
+        txtLast.setText("");
+        txtAdd.setText("");
+        txtPhone.setText("");
+        txtEmail.setText("");
+        txtSocial.setText("");
+        txtJob.setText("");
+        txtOther.setText("");
+        cbxType.setDisable(false);
+        imported = false;
     }
     public void AddPal(){
         String firstName = txtFirst.getText();
@@ -299,14 +336,6 @@ public class HelloController {
         contactArray.add(c);
         Collections.sort(contactArray);
         ShowAll();
-        txtFirst.setText("");
-        txtLast.setText("");
-        txtAdd.setText("");
-        txtPhone.setText("");
-        txtEmail.setText("");
-        txtSocial.setText("");
-        txtJob.setText("");
-        txtOther.setText("");
     }
     public void ImportFriend(List<String> str_array){
         Friend f = new Friend(
@@ -370,26 +399,24 @@ public class HelloController {
         return data;
     }
     public List<String> SplitArray(String str){
-        //str = str.substring(1, str.length() - 1);
         String new_str = "";
         for(char c: str.toCharArray()){
             if(c !='[' && c !=']'){
                 new_str += c;
             }
         }
-        List<String> names = Arrays.asList(new_str.split(","));
+        List<String> names = Arrays.asList(new_str.split(" "));
         return names;
     }
 
 
+
     //TODO
     /*
-    Better toString in export
-    List first names & co
     Add comments
     Test contact exist
-    Control sur les champs
-    Virgules dans champs text
+    Unit Test
+    Edit relation/job?
      */
 
 }
\ No newline at end of file
diff --git a/tp/src/main/java/com/example/tpfx/Professional.java b/tp/src/main/java/com/example/tpfx/Professional.java
index 8609131ef9142035bde5cdefb8fa0036966b7ff9..ba5c4d07e2ece4b4f78ef3d16c4cfeefc9912521 100644
--- a/tp/src/main/java/com/example/tpfx/Professional.java
+++ b/tp/src/main/java/com/example/tpfx/Professional.java
@@ -34,7 +34,7 @@ public class Professional extends Contact{
             w_social += elem + " ";
         }
 
-        return String.valueOf(id) + " - " + w_names + " - " + last_name + " - " + this.addr + " - " + w_phone + " - " + w_email + " - "
-                + w_social + " - " + this.job + " - " + this.work_place;
+        return String.valueOf(id) + " - " + w_names + "- " + last_name + " - " + this.addr + " - " + w_phone + "- "
+                + w_email + "- " + w_social + "- " + this.job + " - " + this.work_place;
     }
 }
diff --git a/tp/src/main/resources/com/example/tpfx/hello-view.fxml b/tp/src/main/resources/com/example/tpfx/hello-view.fxml
index f6da7317f1456c60219c0aebd882dc542d6c6990..d1a72c2c8503758fdc1c384688ea6e32d826a020 100644
--- a/tp/src/main/resources/com/example/tpfx/hello-view.fxml
+++ b/tp/src/main/resources/com/example/tpfx/hello-view.fxml
@@ -46,15 +46,15 @@
       <children>
             <ListView fx:id="LstCt" layoutX="427.0" layoutY="38.0" onMouseClicked="#Selected" prefHeight="489.0" prefWidth="412.0" />
             <Button fx:id="btnAdd" layoutX="229.0" layoutY="51.0" mnemonicParsing="false" onAction="#AddCt" prefHeight="24.0" prefWidth="62.0" text="Add" />
-            <TextField fx:id="txtFirst" layoutX="32.0" layoutY="52.0" />
+            <TextField fx:id="txtFirst" layoutX="32.0" layoutY="52.0" onInputMethodTextChanged="#TestFields" onKeyReleased="#TestFields" />
             <Label layoutX="230.0" layoutY="300.0" text="First Name" />
-            <TextField fx:id="txtLast" layoutX="32.0" layoutY="107.0" />
+            <TextField fx:id="txtLast" layoutX="32.0" layoutY="107.0" onInputMethodTextChanged="#TestFields" onKeyReleased="#TestFields" />
             <Label layoutX="32.0" layoutY="85.0" text="Last Name" />
             <TextField fx:id="txtAdd" layoutX="32.0" layoutY="162.0" />
             <Label layoutX="32.0" layoutY="140.0" text="Address" />
             <TextField fx:id="txtPhone" layoutX="32.0" layoutY="216.0" />
             <Label layoutX="32.0" layoutY="194.0" text="Phones" />
-            <TextField fx:id="txtEmail" layoutX="32.0" layoutY="270.0" />
+            <TextField fx:id="txtEmail" layoutX="32.0" layoutY="270.0" onInputMethodTextChanged="#TestFields" onKeyReleased="#TestFields" />
             <Label layoutX="32.0" layoutY="248.0" text="Emails" />
             <TextField fx:id="txtSocial" layoutX="32.0" layoutY="322.0" />
             <Label layoutX="32.0" layoutY="300.0" text="Socials" />