diff --git a/src/soon/PlayZustand.java b/src/soon/PlayZustand.java
index fc8bf7323c5a08220839a5ff1eacb402feaa9a3d..beddd6c8513dc01ba46c9a32a89a938355844a7e 100644
--- a/src/soon/PlayZustand.java
+++ b/src/soon/PlayZustand.java
@@ -1,15 +1,15 @@
 package soon;
 
-public class PlayZustand extends PowerOn {
+public class PlayZustand extends PowerOnZustand {
 	
-	public PlayZustand(Soon s) {
-		super(s);
+	public PlayZustand(Soon s, PowerOn p) {
+		super(s, p);
 	}
 	
 	public void stopButton() {
 		exit();
-		s.setZustand(s.getStopZustand());
-		s.getZustand().entry();
+		p.setZustand(p.getStopZustand());
+		p.getZustand().entry();
 	}
 
 	public void volumeUpButton() {
diff --git a/src/soon/PowerOff.java b/src/soon/PowerOff.java
index 2643e779ec328cda517a11c21e63c84e7858f1e1..d4e26c4c1e05a179f9a48cfe78fb2d3b63ed479d 100644
--- a/src/soon/PowerOff.java
+++ b/src/soon/PowerOff.java
@@ -1,14 +1,15 @@
 package soon;
 
 public class PowerOff extends Zustand {
-	
+
 	public PowerOff(Soon s) {
 		super(s);
 	}
 	
 	public void powerButton() {
 		exit();
-		s.setZustand(s.getPowerOnHistory());
+		s.setZustand(s.getPowerOnZustand());
 		System.out.println("Anschalten");
-		s.getZustand().entry();	}
+		s.getZustand().entry();
+	}
 }
diff --git a/src/soon/PowerOn.java b/src/soon/PowerOn.java
index de675f1ad5a85a24bdd10ea1e6c08aba8fec94a5..fc3ab60c795ad4ac29427e9ed1db7dc83b923a98 100644
--- a/src/soon/PowerOn.java
+++ b/src/soon/PowerOn.java
@@ -1,15 +1,64 @@
 package soon;
 
-public abstract class PowerOn extends Zustand {
+public class PowerOn extends Zustand {
+	PowerOnZustand playZustand;
+	PowerOnZustand stopZustand;
 
+	PowerOnZustand zustand;
+	
 	public PowerOn(Soon s) {
 		super(s);
+		stopZustand = new StopZustand(s, this);
+		playZustand = new PlayZustand(s, this);
+		zustand = stopZustand;
+	}
+	
+	public PowerOnZustand getStopZustand() {
+		return stopZustand;
+	}
+
+	public PowerOnZustand getPlayZustand() {
+		return playZustand;
+	}
+
+	public PowerOnZustand getZustand() {
+		return zustand;
+	}
+
+	public void setZustand(PowerOnZustand zustand) {
+		this.zustand = zustand;
+	}
+	
+	public void playButton() {
+		zustand.playButton();
 	}
 	
+	public void stopButton() {
+		zustand.stopButton();
+	}
+	
+	public void volumeUpButton() {
+		zustand.volumeUpButton();
+	}
+	
+	public void volumeDownButton() {
+		zustand.volumeDownButton();
+	}
+
 	public void powerButton() {
 		exit();
-		s.setPowerOnHistory(s.getZustand());
 		s.setZustand(s.getPowerOffZustand());
 		System.out.println("Ausschalten");
+		s.getZustand().entry();
+	}
+	
+	public void entry() {
+		s.powerLED_On();
+		zustand.entry();
+	}
+	
+	public void exit() {
+		s.powerLED_Off();
+		zustand.exit();
 	}
 }
diff --git a/src/soon/PowerOnZustand.java b/src/soon/PowerOnZustand.java
new file mode 100644
index 0000000000000000000000000000000000000000..36589af54d4c3ffd094fce046003047ba4f23c8e
--- /dev/null
+++ b/src/soon/PowerOnZustand.java
@@ -0,0 +1,18 @@
+package soon;
+
+public abstract class PowerOnZustand {
+	Soon s;
+	PowerOn p;
+	
+	public PowerOnZustand(Soon s, PowerOn p) {
+		this.s = s;
+		this.p = p;
+	}
+	
+	public void playButton() {};
+	public void stopButton() {};
+	public void volumeUpButton() {};
+	public void volumeDownButton() {};
+	public void entry() {};
+	public void exit() {};
+}
diff --git a/src/soon/Soon.java b/src/soon/Soon.java
index bbfaadab452f083e06e865a9e4e9e9ccd227227d..d03e0dfb60372f6b9c734f9a268832a2a5317473 100644
--- a/src/soon/Soon.java
+++ b/src/soon/Soon.java
@@ -1,35 +1,23 @@
 package soon;
 
 public class Soon {
-	Zustand stopZustand;
-	Zustand playZustand;
+	Zustand powerOnZustand;
 	Zustand powerOffZustand;
-	Zustand powerOnHistory;
 	
 	Zustand zustand;
 	
 	public Soon () {
-		stopZustand = new StopZustand(this);
-		playZustand = new PlayZustand(this);
+		powerOnZustand = new PowerOn(this);
 		powerOffZustand = new PowerOff(this);
 		zustand = powerOffZustand;
-		powerOnHistory = stopZustand;
 	}
 
 	public Zustand getPowerOffZustand() {
 		return powerOffZustand;
 	}
 
-	public void powerButton() {
-		zustand.powerButton();
-	}
-
-	public Zustand getStopZustand() {
-		return stopZustand;
-	}
-
-	public Zustand getPlayZustand() {
-		return playZustand;
+	public Zustand getPowerOnZustand() {
+		return powerOnZustand;
 	}
 
 	public Zustand getZustand() {
@@ -56,6 +44,10 @@ public class Soon {
 		zustand.volumeDownButton();
 	}
 
+	public void powerButton() {
+		zustand.powerButton();
+	}
+
 	public void startPlay() {
 		System.out.println("Musik an");
 	}
@@ -71,13 +63,13 @@ public class Soon {
 	public void volumeDown() {
 		System.out.println("Leiser");
 	}
-	
-	public Zustand getPowerOnHistory() {
-		return powerOnHistory;
+
+	public void powerLED_On() {
+		System.out.println("LED on");
 	}
 	
-	public void setPowerOnHistory(Zustand z) {
-		powerOnHistory = z;
+	public void powerLED_Off() {
+		System.out.println("LED off");
 	}
 
 	public String toString() {
diff --git a/src/soon/SoonTestDrive.java b/src/soon/SoonTestDrive.java
index 991af0bee6ea248abed10db74636104d36893a3a..7e3fc47a1fa5124ea45a60f906e09080258acd3c 100644
--- a/src/soon/SoonTestDrive.java
+++ b/src/soon/SoonTestDrive.java
@@ -10,8 +10,6 @@ public class SoonTestDrive {
 		player.powerButton();
 		player.playButton();
 		player.volumeUpButton();
-		player.powerButton();
-		player.powerButton();
 		player.volumeDownButton();
 		player.stopButton();
 		player.powerButton();
diff --git a/src/soon/StopZustand.java b/src/soon/StopZustand.java
index 354c263f3e6346baed1047102739bf56d9c858ef..67cf4289004691c324108296a54ce20d56e07d4b 100644
--- a/src/soon/StopZustand.java
+++ b/src/soon/StopZustand.java
@@ -1,14 +1,14 @@
 package soon;
 
-public class StopZustand extends PowerOn {
+public class StopZustand extends PowerOnZustand {
 	
-	public StopZustand(Soon s) {
-		super(s);
+	public StopZustand(Soon s, PowerOn p) {
+		super(s, p);
 	}
 	
 	public void playButton() {
 		exit();
-		s.setZustand(s.getPlayZustand());
-		s.getZustand().entry();
+		p.setZustand(p.getPlayZustand());
+		p.getZustand().entry();
 	}
 }
diff --git a/src/soon/Zustand.java b/src/soon/Zustand.java
index f1ab5911767a03473535110cf50113356c44d4c4..8a7d896167da7747dec26764013acccdbfe131e3 100644
--- a/src/soon/Zustand.java
+++ b/src/soon/Zustand.java
@@ -3,8 +3,8 @@ package soon;
 public abstract class Zustand {
 	protected Soon s;
 
-	public Zustand(Soon k) {
-		this.s = k;
+	public Zustand(Soon s) {
+		this.s = s;
 	}
 
 	public void playButton() {};