diff --git a/src/main/java/fr/univlille/iut/r304/thermo/Main.java b/src/main/java/fr/univlille/iut/r304/thermo/Main.java
index a72df01ec8636070d321cba7270031f2066169a9..38c1de01af7909812e9a6c750cf3238ffd4b169a 100644
--- a/src/main/java/fr/univlille/iut/r304/thermo/Main.java
+++ b/src/main/java/fr/univlille/iut/r304/thermo/Main.java
@@ -1,6 +1,5 @@
 package fr.univlille.iut.r304.thermo;
 
-
 import fr.univlille.iut.r304.thermo.model.Thermostat;
 import fr.univlille.iut.r304.thermo.view.TextView;
 import javafx.application.Application;
@@ -10,13 +9,19 @@ public class Main extends Application {
 
 	@Override
 	public void start(Stage primaryStage) {
-		Thermostat model = new Thermostat(); // Création du modèle
-		new TextView(model); // Création de la vue
-		new TextView(model); // Création de la vue
+		// Créer le modèle avec une température initiale
+		Thermostat thermostat = new Thermostat(20.0);
+
+		// Créer deux vues pour le même modèle
+		TextView view1 = new TextView(thermostat);
+		TextView view2 = new TextView(thermostat);
+
+		// Afficher les vues
+		view1.show();
+		view2.show();
 	}
 
 	public static void main(String[] args) {
 		launch(args);
 	}
 }
-
diff --git a/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java b/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java
index 30cc8d4125f7dc1c872254a978f7b89232a73b9b..c8f956bd1403bc84173f73ac8d39aad580b01533 100644
--- a/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java
+++ b/src/main/java/fr/univlille/iut/r304/thermo/model/Thermostat.java
@@ -1,30 +1,37 @@
 package fr.univlille.iut.r304.thermo.model;
 
+import fr.univlille.iut.r304.utils.ConnectableProperty;
+
 public class Thermostat implements ITemperature {
 
-	private double temperature;
+	private ConnectableProperty temperatureProperty;
+
+	public Thermostat(double initialTemperature) {
+		this.temperatureProperty = new ConnectableProperty();
+		this.temperatureProperty.setValue(initialTemperature);
+	}
 
-	public Thermostat() {
-		this.temperature = 20.0; // Température initiale par défaut
+	public ConnectableProperty temperatureProperty() {
+		return temperatureProperty;
 	}
 
 	@Override
 	public void setTemperature(double d) {
-		this.temperature = d;
+		temperatureProperty.setValue(d);
 	}
 
 	@Override
 	public Double getTemperature() {
-		return this.temperature;
+		return (Double) temperatureProperty.getValue();
 	}
 
 	@Override
 	public void incrementTemperature() {
-		this.temperature += 1.0; // Incrémentation de 1 degré
+		setTemperature(getTemperature() + 1);
 	}
 
 	@Override
 	public void decrementTemperature() {
-		this.temperature -= 1.0; // Décrémentation de 1 degré
+		setTemperature(getTemperature() - 1);
 	}
 }
diff --git a/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java b/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java
index 6465b656b0377515cc6883965347767104c174e3..f88bc7bd8711a99ca16bc1ca3b6e5d76b3c3acd9 100644
--- a/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java
+++ b/src/main/java/fr/univlille/iut/r304/thermo/view/TextView.java
@@ -1,6 +1,8 @@
 package fr.univlille.iut.r304.thermo.view;
 
 import fr.univlille.iut.r304.thermo.model.Thermostat;
+import fr.univlille.iut.r304.utils.ConnectableProperty;
+import fr.univlille.iut.r304.utils.Observer;
 import javafx.scene.Scene;
 import javafx.scene.control.Button;
 import javafx.scene.control.Label;
@@ -10,13 +12,15 @@ import javafx.scene.layout.VBox;
 import javafx.geometry.Pos;
 import javafx.stage.Stage;
 
-public class TextView extends Stage implements ITemperatureView {
+public class TextView extends Stage implements ITemperatureView, Observer {
 
 	private Thermostat model;
 	private TextField temperatureField;
+	private ConnectableProperty temperatureProperty;
 
 	public TextView(Thermostat model) {
 		this.model = model;
+		this.temperatureProperty = model.temperatureProperty();
 
 		// Titre de la fenêtre
 		this.setTitle("Taarit Ai Thermostat");
@@ -25,6 +29,7 @@ public class TextView extends Stage implements ITemperatureView {
 		Label unitLabel = new Label("Température en Celsius");
 		VBox vbox = new VBox(10, unitLabel);
 		vbox.setAlignment(Pos.CENTER);
+
 		temperatureField = new TextField(String.valueOf(model.getTemperature()) + " °C");
 		temperatureField.setEditable(false); // Le champ n'est pas modifiable directement
 
@@ -46,6 +51,9 @@ public class TextView extends Stage implements ITemperatureView {
 		Scene scene = new Scene(root, 300, 100);
 		this.setScene(scene);
 		this.show();
+
+		// Attacher cette vue comme observateur du modèle
+		model.temperatureProperty().attach(this);
 	}
 
 	@Override
@@ -57,17 +65,26 @@ public class TextView extends Stage implements ITemperatureView {
 	@Override
 	public void incrementAction() {
 		model.incrementTemperature();
-		updateView();
+		// Mise à jour automatique via le modèle
 	}
 
 	@Override
 	public void decrementAction() {
 		model.decrementTemperature();
-		updateView();
+		// Mise à jour automatique via le modèle
 	}
 
-	// Mise à jour de l'affichage lorsque la température change
-	private void updateView() {
-		temperatureField.setText(String.valueOf(model.getTemperature()) + " °C");
+	@Override
+	public void update(fr.univlille.iut.r304.utils.Observable observable, Object data) {
+		// Mise à jour de l'affichage lorsque la température change
+		temperatureField.setText(String.valueOf(data) + " °C");
+	}
+
+	@Override
+	public void update(fr.univlille.iut.r304.utils.Observable observable) {
+		// Non utilisé mais nécessaire pour implémenter Observer
+	}
+	public ConnectableProperty getTemperatureProperty() {
+		return temperatureProperty;
 	}
 }