diff --git a/src/pizzeria/CheesePizza.java b/src/pizzeria/CheesePizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec07deda36532628c2d1dd9656b6031173cf26f1
--- /dev/null
+++ b/src/pizzeria/CheesePizza.java
@@ -0,0 +1,11 @@
+package pizzeria;
+
+public class CheesePizza extends Pizza {
+	public CheesePizza() {
+		name = "Cheese Pizza";
+		dough = "Regular Crust";
+		sauce = "Marinara Pizza Sauce";
+		toppings.add("Fresh Mozzarella");
+		toppings.add("Parmesan");
+	}
+}
diff --git a/src/pizzeria/ClamPizza.java b/src/pizzeria/ClamPizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..7159d5ea12f29c5c75f160155d3050de490a7130
--- /dev/null
+++ b/src/pizzeria/ClamPizza.java
@@ -0,0 +1,11 @@
+package pizzeria;
+
+public class ClamPizza extends Pizza {
+	public ClamPizza() {
+		name = "Clam Pizza";
+		dough = "Thin crust";
+		sauce = "White garlic sauce";
+		toppings.add("Clams");
+		toppings.add("Grated parmesan cheese");
+	}
+}
diff --git a/src/pizzeria/PepperoniPizza.java b/src/pizzeria/PepperoniPizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..30464f605bc080f1804881368da7e92c7888a563
--- /dev/null
+++ b/src/pizzeria/PepperoniPizza.java
@@ -0,0 +1,12 @@
+package pizzeria;
+
+public class PepperoniPizza extends Pizza {
+	public PepperoniPizza() {
+		name = "Pepperoni Pizza";
+		dough = "Crust";
+		sauce = "Marinara sauce";
+		toppings.add("Sliced Pepperoni");
+		toppings.add("Sliced Onion");
+		toppings.add("Grated parmesan cheese");
+	}
+}
diff --git a/src/pizzeria/Pizza.java b/src/pizzeria/Pizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..1d25eb2de32dd13ca1ff5da43d1fa2aa6bb1012e
--- /dev/null
+++ b/src/pizzeria/Pizza.java
@@ -0,0 +1,43 @@
+package pizzeria;
+
+import java.util.ArrayList;
+
+abstract public class Pizza {
+	String name;
+	String dough;
+	String sauce;
+	ArrayList<String> toppings = new ArrayList<String>();
+
+	public String getName() {
+		return name;
+	}
+
+	public void prepare() {
+		System.out.println("Preparing " + name);
+	}
+
+	public void bake() {
+		System.out.println("Baking " + name);
+	}
+
+	public void cut() {
+		System.out.println("Cutting " + name);
+	}
+
+	public void box() {
+		System.out.println("Boxing " + name);
+	}
+
+	public String toString() {
+		// code to display pizza name and ingredients
+		StringBuffer display = new StringBuffer();
+		display.append("---- " + name + " ----\n");
+		display.append(dough + "\n");
+		display.append(sauce + "\n");
+		for (int i = 0; i < toppings.size(); i++) {
+			display.append((String )toppings.get(i) + "\n");
+		}
+		return display.toString();
+	}
+}
+
diff --git a/src/pizzeria/PizzaStore.java b/src/pizzeria/PizzaStore.java
new file mode 100644
index 0000000000000000000000000000000000000000..4aa035e7b83d48de2fb2c1aaa7d89b0a79cb949e
--- /dev/null
+++ b/src/pizzeria/PizzaStore.java
@@ -0,0 +1,28 @@
+package pizzeria;
+
+public class PizzaStore {
+ 
+	public Pizza orderPizza(String type) {
+		Pizza pizza = null;
+
+		if (type.equals("cheese")) {
+			pizza = new CheesePizza();
+		} else if (type.equals("pepperoni")) {
+			pizza = new PepperoniPizza();
+		} else if (type.equals("clam")) {
+			pizza = new ClamPizza();
+		} else if (type.equals("veggie")) {
+			pizza = new VeggiePizza();
+		} else {
+			return pizza;
+		}
+ 
+		pizza.prepare();
+		pizza.bake();
+		pizza.cut();
+		pizza.box();
+
+		return pizza;
+	}
+
+}
diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java
new file mode 100644
index 0000000000000000000000000000000000000000..6dae385569139ad6f33f03f813b439f37c563006
--- /dev/null
+++ b/src/pizzeria/PizzaTestDrive.java
@@ -0,0 +1,16 @@
+package pizzeria;
+
+public class PizzaTestDrive {
+ 
+	public static void main(String[] args) {
+		PizzaStore store = new PizzaStore();
+
+		Pizza pizza = store.orderPizza("cheese");
+		System.out.println("We ordered a " + pizza.getName() + "\n");
+ 
+		pizza = store.orderPizza("veggie");
+		System.out.println("We ordered a " + pizza.getName() + "\n");
+
+		System.out.println(new PizzaStore().orderPizza("pepperoni").toString());
+	}
+}
diff --git a/src/pizzeria/VeggiePizza.java b/src/pizzeria/VeggiePizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..63429c1a3859289365057a79f236dfeb884e0e2b
--- /dev/null
+++ b/src/pizzeria/VeggiePizza.java
@@ -0,0 +1,15 @@
+package pizzeria;
+
+public class VeggiePizza extends Pizza {
+	public VeggiePizza() {
+		name = "Veggie Pizza";
+		dough = "Crust";
+		sauce = "Marinara sauce";
+		toppings.add("Shredded mozzarella");
+		toppings.add("Grated parmesan");
+		toppings.add("Diced onion");
+		toppings.add("Sliced mushrooms");
+		toppings.add("Sliced red pepper");
+		toppings.add("Sliced black olives");
+	}
+}
diff --git a/src/readme.txt b/src/readme.txt
deleted file mode 100644
index 1724e3d8249ad1c619d34f6e4c264d642a4e47d6..0000000000000000000000000000000000000000
--- a/src/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Source Code für die Beispiele und Übungsaufgaben
\ No newline at end of file