diff --git a/src/wetterstation/AktuelleBedingungenAnzeige.java b/src/wetterstation/AktuelleBedingungenAnzeige.java
index 879d1486eb91db720be471e408799b5e12696ed3..430fe980ef1cdda9194de7e070ca584a5a1333df 100644
--- a/src/wetterstation/AktuelleBedingungenAnzeige.java
+++ b/src/wetterstation/AktuelleBedingungenAnzeige.java
@@ -1,6 +1,6 @@
 package wetterstation;
 	
-public class AktuelleBedingungenAnzeige {
+public class AktuelleBedingungenAnzeige implements Beobachter {
 	private float temperatur;
 	private float feuchtigkeit;
 	
diff --git a/src/wetterstation/Beobachter.java b/src/wetterstation/Beobachter.java
new file mode 100644
index 0000000000000000000000000000000000000000..fa733b6e065d777ebc49c7befb7a29d0e35d9a86
--- /dev/null
+++ b/src/wetterstation/Beobachter.java
@@ -0,0 +1,5 @@
+package wetterstation;
+
+public interface Beobachter {
+	public void aktualisieren(float temp, float feucht, float druck);
+}
diff --git a/src/wetterstation/StatistikAnzeige.java b/src/wetterstation/StatistikAnzeige.java
index 5ca9941615c57eda2f5257871c2d38d9b6988432..020cdeee8a0b40baef871a28ef969ce07d1a64e9 100644
--- a/src/wetterstation/StatistikAnzeige.java
+++ b/src/wetterstation/StatistikAnzeige.java
@@ -1,12 +1,12 @@
 package wetterstation;
 
-public class StatistikAnzeige {
+public class StatistikAnzeige implements Beobachter {
 	private float maxTemp = 0.0f;
 	private float minTemp = 200;
 	private float tempSum= 0.0f;
 	private int anzMesswerte;
 
-	public void neueWerte(float temp, float feucht, float druck) {
+	public void aktualisieren(float temp, float feucht, float druck) {
 		tempSum += temp;
 		anzMesswerte++;
 
diff --git a/src/wetterstation/VorhersageAnzeige.java b/src/wetterstation/VorhersageAnzeige.java
index ae53498896271a080e7a86efcd8160997ba38a54..d6fd3b10347b731ece9aef2bd76877790fd1320c 100644
--- a/src/wetterstation/VorhersageAnzeige.java
+++ b/src/wetterstation/VorhersageAnzeige.java
@@ -1,13 +1,13 @@
 package wetterstation;
 
 
-public class VorhersageAnzeige {
+public class VorhersageAnzeige implements Beobachter {
 	private float aktuellerLuftdruck = 29.92f;  
 	private float letzterLuftdruck;
 
 	
-	public void aktuelleWerte(float temp, float feucht, float druck) {
-        letzterLuftdruck = aktuellerLuftdruck;
+	public void aktualisieren(float temp, float feucht, float druck) {
+                letzterLuftdruck = aktuellerLuftdruck;
 		aktuellerLuftdruck = druck;
 
 		anzeigen();
diff --git a/src/wetterstation/WetterDaten.java b/src/wetterstation/WetterDaten.java
index 8ced0be5137185ffb1f7990fd70e66c4a645d528..5ddeb3d810dd51788052a2fc06f0c18fc09874ee 100644
--- a/src/wetterstation/WetterDaten.java
+++ b/src/wetterstation/WetterDaten.java
@@ -1,18 +1,27 @@
 package wetterstation;
 
+import java.util.ArrayList;
+import java.util.Arrays;
+
 public class WetterDaten {
 	private float temperatur;
 	private float feuchtigkeit;
 	private float luftdruck;
-	AktuelleBedingungenAnzeige anzeige = new AktuelleBedingungenAnzeige();
-	StatistikAnzeige statistik = new StatistikAnzeige();
-	VorhersageAnzeige vorhersage = new VorhersageAnzeige();
+	ArrayList<Beobachter> beobachter = new ArrayList<Beobachter>(
+			Arrays.<Beobachter>asList(new AktuelleBedingungenAnzeige(),
+					    			  new StatistikAnzeige(),
+									  new VorhersageAnzeige()));
+	
+	public void benachrichtigeBeobachter() {
+		for (int i = 0; i < beobachter.size(); i++) {
+			Beobachter observer = (Beobachter)beobachter.get(i);
+			observer.aktualisieren(temperatur, feuchtigkeit, luftdruck);
+		}
+	}
 	
 	public void messwerteGeaendert() {
 		System.out.println(this.toString());
-		anzeige.aktualisieren(temperatur, feuchtigkeit, luftdruck);
-		statistik.neueWerte(temperatur, feuchtigkeit, luftdruck);
-		vorhersage.aktuelleWerte(temperatur, feuchtigkeit, luftdruck);
+		benachrichtigeBeobachter();
 	}
 	
 	public void setMesswerte(float temp, float feucht, float druck) {