diff --git a/src/de/itstall/GameField.java b/src/de/itstall/GameField.java
index 0047745f0fd4195ac72bb90ca928eb81a499a9a0..7baa297d30e2c2e7ae3af9965f8bb7912be1c56c 100644
--- a/src/de/itstall/GameField.java
+++ b/src/de/itstall/GameField.java
@@ -4,12 +4,13 @@ public class GameField {
 	public int width, height;
 	private GameTile[][] field;
 
-	GameField(int width, int height, String stringField) {
+	GameField(int width, String stringField) {
 		this.width = width;
-		this.height = height;
-		field = new GameTile[width][height];
+		this.height = stringField.length() /width;
 
-		for (int y = 0; y < height; ++y) {
+		field = new GameTile[width][this.height];
+
+		for (int y = 0; y < this.height; ++y) {
 			for (int x = 0; x < width; ++x) {
 
 				switch (stringField.charAt(x + y * width)) {
@@ -34,7 +35,6 @@ public class GameField {
 			for (int x = 0; x < this.field.length; x++) {
 				sb.append(this.field[x][y]);
 			}
-			sb.append("\n");
 		}
 
 		return sb.toString();
diff --git a/src/de/itstall/GameMain.java b/src/de/itstall/GameMain.java
index 19f1e6bcd90e23b692694a2112cf49647191424e..8684a417ce23101a69a1f9532caa9d2599b469b4 100644
--- a/src/de/itstall/GameMain.java
+++ b/src/de/itstall/GameMain.java
@@ -3,16 +3,8 @@ package de.itstall;
 public class GameMain {
 	public static void main(String[] args) {
 
-		String field = "########" +
-				"#      #" +
-				"#      #" +
-				"###    #" +
-				"#      #" +
-				"########";
-
-		GameField gf = new GameField(8, 6, field);
-
-		System.out.println(gf);
+		World w = new World();
 
+		System.out.println(w.draw());
 	}
 }
diff --git a/src/de/itstall/Player.java b/src/de/itstall/Player.java
new file mode 100644
index 0000000000000000000000000000000000000000..18002558790d5ec6c06ddd0eae245d945aacb873
--- /dev/null
+++ b/src/de/itstall/Player.java
@@ -0,0 +1,33 @@
+package de.itstall;
+
+public class Player extends GameTile {
+
+	Player(Position position) {
+		this.pos = position;
+	}
+
+	public String draw(String s, int worldLength) {
+		int index = pos.toIndex( worldLength );
+		char[] chars = s.toCharArray();
+		chars[index] = this.toString().charAt(0);
+		return new String(chars);
+	}
+
+	public void moveLeft() {
+		pos.setPosition(pos.getX() - 1, pos.getY());
+	}
+	public void moveRight() {
+		pos.setPosition(pos.getX() + 1, pos.getY());
+	}
+	public void moveUp() {
+		pos.setPosition(pos.getX(), pos.getY() - 1);
+	}
+	public void moveDown() {
+		pos.setPosition(pos.getX(), pos.getY() + 1);
+	}
+
+	@Override
+	public String toString() {
+		return "@";
+	}
+}
diff --git a/src/de/itstall/Position.java b/src/de/itstall/Position.java
index 9d9413c46fd2ad350d82de493c9acee8ed665ce0..97e43ae6f487c667a285c745c5ce9b29fea7f025 100644
--- a/src/de/itstall/Position.java
+++ b/src/de/itstall/Position.java
@@ -26,15 +26,11 @@ public class Position {
 		return x;
 	}
 
-	public void setX(int x) {
-		this.x = x;
-	}
-
 	public int getY() {
 		return y;
 	}
 
-	public void setY(int y) {
-		this.y = y;
+	public int toIndex(int width) {
+		return x + y * width;
 	}
 }
diff --git a/src/de/itstall/World.java b/src/de/itstall/World.java
new file mode 100644
index 0000000000000000000000000000000000000000..57f2ba334590b042c47e08b5a02f9f1e5307b3a0
--- /dev/null
+++ b/src/de/itstall/World.java
@@ -0,0 +1,25 @@
+package de.itstall;
+
+public class World {
+	GameField field;
+	Player player;
+
+	public World() {
+		String canvas = "#########      ##      ####    ##      #########";
+		this.field = new GameField(8, canvas);
+		this.player = new Player(new Position(1, 1));
+	}
+
+	public String draw() {
+		StringBuilder sb = new StringBuilder();
+		String s = this.player.draw(this.field.toString(), this.field.width);
+
+		sb.append("\n\n\n\n\n\n\n");
+		for (int y = 0; y < this.field.height; y++) {
+			sb.append(s.substring(y * this.field.width, (y + 1) * this.field.width));
+			sb.append("\n");
+		}
+
+		return sb.toString();
+	}
+}