diff --git a/src/de/itstall/Karton.java b/src/de/itstall/Karton.java
new file mode 100644
index 0000000000000000000000000000000000000000..1108785ce8a835048379703477a1b9e34b1ba037
--- /dev/null
+++ b/src/de/itstall/Karton.java
@@ -0,0 +1,23 @@
+package de.itstall;
+
+public class Karton<T> {
+
+	private T objekt;
+	private String bezeichnung;
+
+	public T getObjekt() {
+		return objekt;
+	}
+
+	public void setObjekt(T objekt) {
+		this.objekt = objekt;
+	}
+
+	public String getBezeichnung() {
+		return bezeichnung;
+	}
+
+	public void setBezeichnung(String bezeichnung) {
+		this.bezeichnung = bezeichnung;
+	}
+}
diff --git a/src/de/itstall/Lager.java b/src/de/itstall/Lager.java
index 218d00b638b441cfa4acce0858649b2efda64527..7115f9d05fc77e43155810bb676814bf74895515 100644
--- a/src/de/itstall/Lager.java
+++ b/src/de/itstall/Lager.java
@@ -6,11 +6,17 @@ import java.util.ArrayList;
  * Klasse zur Verwaltung der Lager
  */
 public class Lager {
-	private int regalLagerplaetze;
 
-	/** Liste der Regale im aktuellen Lager */
+	/**
+	 * Liste der Regale im aktuellen Lager
+	 */
 	ArrayList<Regal> lagerListe = new ArrayList<>();
 
+	/**
+	 * Anzahl der Lagerplaetze pro Regal
+	 */
+	private int regalLagerplaetze;
+
 	/**
 	 * Der Konstruktor legt gleich schon mal ein Regal an und legt auch die Lagerplaetze pro Regal fest
 	 *
@@ -21,6 +27,11 @@ public class Lager {
 		this.addRegal(this.regalLagerplaetze);
 	}
 
+	/**
+	 * Gibt die Anzahl der Regal Lagerplaetze zurueck
+	 *
+	 * @return int : Anzahl der Lagerplaetze pro Regal
+	 */
 	public int getRegalLagerplaetze() {
 		return this.regalLagerplaetze;
 	}
@@ -34,13 +45,32 @@ public class Lager {
 		this.lagerListe.add(new Regal(lagerplaetze));
 	}
 
+	/**
+	 * Sucht auf den Lagerplaetzen nach einem Objekt und gibt den Lagerplatz zurueck
+	 *
+	 * @param o : Object : Das zu suchende Object
+	 * @return Object : Lagerplatz
+	 */
+	public Karton<?> finden(Karton<?> o) {
+		for(Regal regal : lagerListe) {
+			for(Lager.Regal.Lagerplatz lagerplatz : regal.lagerplaetzListe) {
+				for(Object o1 : lagerplatz.lagerWarenListe) {
+					System.out.println(o1.toString());
+				}
+			}
+		}
+		return null;
+	}
+
 	/**
 	 * Klasse zur Verwaltung der Regale
 	 * Ein Regal kan max. fünf Lagerplaetze besitzen
 	 */
-	public class Regal extends Lager {
+	public class Regal {
 
-		/** Liste der Lagerplaetze in dem aktuellen Regal */
+		/**
+		 * Liste der Lagerplaetze in dem aktuellen Regal
+		 */
 		ArrayList<Lagerplatz> lagerplaetzListe = new ArrayList<>();
 
 		/**
@@ -55,7 +85,7 @@ public class Lager {
 		 * @return boolean : Erfolgreich?
 		 */
 		public Regal(int lagerplaetze) {
-			if(lagerplaetze > 0 && lagerplaetze <= 5) {
+			if (lagerplaetze > 0 && lagerplaetze <= 5) {
 				this.setLagerplaetze(lagerplaetze);
 			}
 		}
@@ -71,7 +101,7 @@ public class Lager {
 
 		/**
 		 * Setzt die Lagerplaetze auf die uebergebene int Zahl und prueft ob die Zahl gueltig ist
-		 *
+		 * <p>
 		 * Gueltigkeitsbereich 1-5
 		 *
 		 * @param lagerplaetze : int : Anzahl der Lagerplaetze
@@ -80,14 +110,21 @@ public class Lager {
 			this.lagerplaetze = lagerplaetze;
 		}
 
+		/**
+		 * Wenn im aktuellen Regal noch ein Lagerplatz frei ist, wird ein Platz abgezogen.
+		 * Ansonten wird ein neues Regal angebaut.
+		 */
 		public void einlagern() {
-			if(this.lagerplaetze > 0) {
+			if (this.lagerplaetze > 0) {
 				this.lagerplaetze--;
 			} else {
-				super.addRegal(super.getRegalLagerplaetze());
+				Lager.this.addRegal(Lager.this.getRegalLagerplaetze());
 			}
 		}
 
+		/**
+		 * Gibt einen Lagerplatz wieder frei
+		 */
 		public void entnehmen() {
 			this.lagerplaetze++;
 		}
@@ -96,9 +133,11 @@ public class Lager {
 		 * Klasse zur Verwaltung der Lagerplaetze
 		 * Ein Regal kann max. fuenf Lagerplaetze haben.
 		 */
-		public class  Lagerplatz {
+		public class Lagerplatz {
 
-			/** Liste der Waren im aktuellen lagerplatz */
+			/**
+			 * Liste der Waren im aktuellen lagerplatz
+			 */
 			ArrayList<Object> lagerWarenListe = new ArrayList<>();
 
 			/**
@@ -106,8 +145,8 @@ public class Lager {
 			 *
 			 * @param o : Object : Das einzulagernde Object
 			 */
-			public void einlagern(Object o) {
-				if(Regal.this.getRegalLagerplaetze() > Lager.Regal.this.getLagerplaetze()) {
+			public void einlagern(Karton<?> o) {
+				if (Lager.this.getRegalLagerplaetze() > Lager.Regal.this.getLagerplaetze()) {
 					this.lagerWarenListe.add(o);
 					Regal.this.einlagern();
 				}
@@ -115,28 +154,17 @@ public class Lager {
 
 			/**
 			 * Objekt einem Lagerplatz entnehmen und den Platz wieder freigeben
-			 *
+			 * <p>
 			 * -> Kontrollieren auf welchem Lagerplatz sich das Objekt befindet
 			 *
 			 * @param o : Object : Das zu entnehmende Object
 			 * @return boolean : Erfolgreich entnommen?
 			 */
-			public boolean entnehmen(Object o) {
+			public boolean entnehmen(Karton<?> o) {
 
 				return false;
 			}
 
-			/**
-			 * Sucht auf den Lagerplaetzen nach einem Objekt und gibt den Lagerplatz zurueck
-			 *
-			 * @param o : Object : Das zu suchende Object
-			 * @return Object : Lagerplatz
-			 * */
-			public Object finden(Object o) {
-
-				return null;
-			}
-
 		}
 
 	}
diff --git a/src/de/itstall/Main.java b/src/de/itstall/Main.java
index a33080dc1f1b2778e256314a65747324dd7793cc..dccfc5921083010ab66e4144e51568f3e07564fc 100644
--- a/src/de/itstall/Main.java
+++ b/src/de/itstall/Main.java
@@ -1,5 +1,7 @@
 package de.itstall;
 
+import de.itstall.Lager.Regal;
+
 public class Main {
 
     /**
@@ -13,6 +15,18 @@ public class Main {
      * @param args
      */
     public static void main(String[] args) {
-	// write your code here
+	    Karton<?> karton = new Karton<>();
+	    karton.setBezeichnung("Test");
+
+	    Lager lager = new Lager();
+
+	    for(Regal regal : lager.lagerListe) {
+
+        }
+
+	    Regal lagerListe = lager.lagerListe;
+	    Lager.Regal.Lagerplatz lagerplatz = lagerListe.new Lagerplatz();
+
+        lagerplatz.einlagern(karton);
     }
 }