diff --git a/src/wetterstation/AktuelleBedingungenAnzeige.java b/src/wetterstation/AktuelleBedingungenAnzeige.java
index 430fe980ef1cdda9194de7e070ca584a5a1333df..c7af2382945ae649d7f8484c7b6766eea45ba5d2 100644
--- a/src/wetterstation/AktuelleBedingungenAnzeige.java
+++ b/src/wetterstation/AktuelleBedingungenAnzeige.java
@@ -4,6 +4,10 @@ public class AktuelleBedingungenAnzeige implements Beobachter {
 	private float temperatur;
 	private float feuchtigkeit;
 	
+	public AktuelleBedingungenAnzeige(WetterDaten wetterDaten) {
+		wetterDaten.registriereBeobachter(this);
+	}
+	
 	public void aktualisieren(float temp, float feucht, float druck) {
 		this.temperatur = temp;
 		this.feuchtigkeit = feucht;
diff --git a/src/wetterstation/StatistikAnzeige.java b/src/wetterstation/StatistikAnzeige.java
index 020cdeee8a0b40baef871a28ef969ce07d1a64e9..39d61a05e0ca034d9c61d62a603b629841662349 100644
--- a/src/wetterstation/StatistikAnzeige.java
+++ b/src/wetterstation/StatistikAnzeige.java
@@ -6,6 +6,10 @@ public class StatistikAnzeige implements Beobachter {
 	private float tempSum= 0.0f;
 	private int anzMesswerte;
 
+	public StatistikAnzeige(WetterDaten wetterDaten) {
+		wetterDaten.registriereBeobachter(this);
+	}
+	
 	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 d6fd3b10347b731ece9aef2bd76877790fd1320c..4727fc8d7c1cc0fb3ce0d7ed52220f72b4daca4e 100644
--- a/src/wetterstation/VorhersageAnzeige.java
+++ b/src/wetterstation/VorhersageAnzeige.java
@@ -6,6 +6,10 @@ public class VorhersageAnzeige implements Beobachter {
 	private float letzterLuftdruck;
 
 	
+	public VorhersageAnzeige(WetterDaten wetterDaten) {
+		wetterDaten.registriereBeobachter(this);
+	}
+	
 	public void aktualisieren(float temp, float feucht, float druck) {
                 letzterLuftdruck = aktuellerLuftdruck;
 		aktuellerLuftdruck = druck;
diff --git a/src/wetterstation/WetterDaten.java b/src/wetterstation/WetterDaten.java
index 5ddeb3d810dd51788052a2fc06f0c18fc09874ee..fed03bb5fc1873dfe9ed29b4c516084a13fa32fe 100644
--- a/src/wetterstation/WetterDaten.java
+++ b/src/wetterstation/WetterDaten.java
@@ -1,17 +1,23 @@
 package wetterstation;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 
 public class WetterDaten {
 	private float temperatur;
 	private float feuchtigkeit;
 	private float luftdruck;
-	ArrayList<Beobachter> beobachter = new ArrayList<Beobachter>(
-			Arrays.<Beobachter>asList(new AktuelleBedingungenAnzeige(),
-					    			  new StatistikAnzeige(),
-									  new VorhersageAnzeige()));
+	ArrayList<Beobachter> beobachter = new ArrayList<Beobachter>();
 	
+	public void registriereBeobachter(Beobachter b) {
+		beobachter.add(b);
+	}
+	
+	public void entferneBeobachter(Beobachter b) {
+		int i = beobachter.indexOf(b);
+		if (i >= 0) {
+			beobachter.remove(i);
+		}
+	}
 	public void benachrichtigeBeobachter() {
 		for (int i = 0; i < beobachter.size(); i++) {
 			Beobachter observer = (Beobachter)beobachter.get(i);
diff --git a/src/wetterstation/WetterStation.java b/src/wetterstation/WetterStation.java
index e0f38c9748e1e9211ffb0671a75c5c3425899f62..d3d81b52417f99f00e195e976fc95ab434aef8de 100644
--- a/src/wetterstation/WetterStation.java
+++ b/src/wetterstation/WetterStation.java
@@ -2,9 +2,14 @@ package wetterstation;
 
 public class WetterStation {
 
+	@SuppressWarnings("unused")
 	public static void main(String[] args) {
 		WetterDaten wetterDaten = new WetterDaten();
 		
+		AktuelleBedingungenAnzeige aktuelleAnzeige = new AktuelleBedingungenAnzeige(wetterDaten);
+		StatistikAnzeige statistikAnzeige = new StatistikAnzeige(wetterDaten);
+		VorhersageAnzeige vorhersageAnzeige = new VorhersageAnzeige(wetterDaten);
+
 		wetterDaten.setMesswerte(30, 65, 30.4f);
 		wetterDaten.setMesswerte(32, 70, 29.2f);
 		wetterDaten.setMesswerte(28, 90, 29.2f);