diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java
new file mode 100644
index 0000000000000000000000000000000000000000..803aabed5893b95fef7c93cd1270bf2fa11fdcc0
--- /dev/null
+++ b/src/pizzeria/PizzaTestDrive.java
@@ -0,0 +1,38 @@
+package pizzeria;
+
+import pizzeria.pizza.Pizza;
+import pizzeria.store.ChicagoPizzaStore;
+import pizzeria.store.NYPizzaStore;
+import pizzeria.store.PizzaStore;
+
+public class PizzaTestDrive {
+ 
+	public static void main(String[] args) {
+		PizzaStore nyStore = new NYPizzaStore();
+		PizzaStore chicagoStore = new ChicagoPizzaStore();
+ 
+		Pizza pizza = nyStore.orderPizza("cheese");
+		System.out.println("Ethan ordered a " + pizza.getName() + "\n");
+ 
+		pizza = chicagoStore.orderPizza("cheese");
+		System.out.println("Joel ordered a " + pizza.getName() + "\n");
+
+		pizza = nyStore.orderPizza("clam");
+		System.out.println("Ethan ordered a " + pizza.getName() + "\n");
+ 
+		pizza = chicagoStore.orderPizza("clam");
+		System.out.println("Joel ordered a " + pizza.getName() + "\n");
+
+		pizza = nyStore.orderPizza("pepperoni");
+		System.out.println("Ethan ordered a " + pizza.getName() + "\n");
+ 
+		pizza = chicagoStore.orderPizza("pepperoni");
+		System.out.println("Joel ordered a " + pizza.getName() + "\n");
+
+		pizza = nyStore.orderPizza("veggie");
+		System.out.println("Ethan ordered a " + pizza.getName() + "\n");
+ 
+		pizza = chicagoStore.orderPizza("veggie");
+		System.out.println("Joel ordered a " + pizza.getName() + "\n");
+	}
+}
diff --git a/src/pizzeria/ingredients/BlackOlives.java b/src/pizzeria/ingredients/BlackOlives.java
new file mode 100644
index 0000000000000000000000000000000000000000..74d73d8f0b2319b6b3583c600f43ad99e1fc141d
--- /dev/null
+++ b/src/pizzeria/ingredients/BlackOlives.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class BlackOlives implements Veggies {
+
+	public String toString() {
+		return "Black Olives";
+	}
+}
diff --git a/src/pizzeria/ingredients/Cheese.java b/src/pizzeria/ingredients/Cheese.java
new file mode 100644
index 0000000000000000000000000000000000000000..286d72d7fbad705febf0333cb8949a7fe68a603d
--- /dev/null
+++ b/src/pizzeria/ingredients/Cheese.java
@@ -0,0 +1,5 @@
+package pizzeria.ingredients;
+
+public interface Cheese {
+	public String toString();
+}
diff --git a/src/pizzeria/ingredients/Clams.java b/src/pizzeria/ingredients/Clams.java
new file mode 100644
index 0000000000000000000000000000000000000000..1acd9e050dc1e24f1c04148bce258ba39b86f723
--- /dev/null
+++ b/src/pizzeria/ingredients/Clams.java
@@ -0,0 +1,5 @@
+package pizzeria.ingredients;
+
+public interface Clams {
+	public String toString();
+}
diff --git a/src/pizzeria/ingredients/Dough.java b/src/pizzeria/ingredients/Dough.java
new file mode 100644
index 0000000000000000000000000000000000000000..b97771a2215d5398dd2a308096a6c5d89c2dc462
--- /dev/null
+++ b/src/pizzeria/ingredients/Dough.java
@@ -0,0 +1,5 @@
+package pizzeria.ingredients;
+
+public interface Dough {
+	public String toString();
+}
diff --git a/src/pizzeria/ingredients/Eggplant.java b/src/pizzeria/ingredients/Eggplant.java
new file mode 100644
index 0000000000000000000000000000000000000000..c29952384169ad624c4fe2b7c92457aae36ebeb5
--- /dev/null
+++ b/src/pizzeria/ingredients/Eggplant.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class Eggplant implements Veggies {
+
+	public String toString() {
+		return "Eggplant";
+	}
+}
diff --git a/src/pizzeria/ingredients/FreshClams.java b/src/pizzeria/ingredients/FreshClams.java
new file mode 100644
index 0000000000000000000000000000000000000000..45f647a620c103b32984f2e06e89a312a7100725
--- /dev/null
+++ b/src/pizzeria/ingredients/FreshClams.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class FreshClams implements Clams {
+
+	public String toString() {
+		return "Fresh Clams from Long Island Sound";
+	}
+}
diff --git a/src/pizzeria/ingredients/FrozenClams.java b/src/pizzeria/ingredients/FrozenClams.java
new file mode 100644
index 0000000000000000000000000000000000000000..89459d9549d1a714492ee617510f4217a0ee528b
--- /dev/null
+++ b/src/pizzeria/ingredients/FrozenClams.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class FrozenClams implements Clams {
+
+	public String toString() {
+		return "Frozen Clams from Chesapeake Bay";
+	}
+}
diff --git a/src/pizzeria/ingredients/Garlic.java b/src/pizzeria/ingredients/Garlic.java
new file mode 100644
index 0000000000000000000000000000000000000000..a6cb0871fe255dac6343f42c59943c708646bf38
--- /dev/null
+++ b/src/pizzeria/ingredients/Garlic.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class Garlic implements Veggies {
+
+	public String toString() {
+		return "Garlic";
+	}
+}
diff --git a/src/pizzeria/ingredients/MarinaraSauce.java b/src/pizzeria/ingredients/MarinaraSauce.java
new file mode 100644
index 0000000000000000000000000000000000000000..5e660ed9834c68afa85ecb7f551bd04039708224
--- /dev/null
+++ b/src/pizzeria/ingredients/MarinaraSauce.java
@@ -0,0 +1,7 @@
+package pizzeria.ingredients;
+
+public class MarinaraSauce implements Sauce {
+	public String toString() {
+		return "Marinara Sauce";
+	}
+}
diff --git a/src/pizzeria/ingredients/MozzarellaCheese.java b/src/pizzeria/ingredients/MozzarellaCheese.java
new file mode 100644
index 0000000000000000000000000000000000000000..eb62fa9836d107db1950245fd9818a088df4636a
--- /dev/null
+++ b/src/pizzeria/ingredients/MozzarellaCheese.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class MozzarellaCheese implements Cheese {
+
+	public String toString() {
+		return "Shredded Mozzarella";
+	}
+}
diff --git a/src/pizzeria/ingredients/Mushroom.java b/src/pizzeria/ingredients/Mushroom.java
new file mode 100644
index 0000000000000000000000000000000000000000..a79a5df775fb7890466577957bf7ca217d8dac3c
--- /dev/null
+++ b/src/pizzeria/ingredients/Mushroom.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class Mushroom implements Veggies {
+
+	public String toString() {
+		return "Mushrooms";
+	}
+}
diff --git a/src/pizzeria/ingredients/Onion.java b/src/pizzeria/ingredients/Onion.java
new file mode 100644
index 0000000000000000000000000000000000000000..2858be65be9ce9cffdc935ab7977573c8f23ecd6
--- /dev/null
+++ b/src/pizzeria/ingredients/Onion.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class Onion implements Veggies {
+
+	public String toString() {
+		return "Onion";
+	}
+}
diff --git a/src/pizzeria/ingredients/ParmesanCheese.java b/src/pizzeria/ingredients/ParmesanCheese.java
new file mode 100644
index 0000000000000000000000000000000000000000..7f67c67dc6beaa39c900c0e886e3606478233f94
--- /dev/null
+++ b/src/pizzeria/ingredients/ParmesanCheese.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class ParmesanCheese implements Cheese {
+
+	public String toString() {
+		return "Shredded Parmesan";
+	}
+}
diff --git a/src/pizzeria/ingredients/Pepperoni.java b/src/pizzeria/ingredients/Pepperoni.java
new file mode 100644
index 0000000000000000000000000000000000000000..315d06959debc036007a003105c16b8ead9ad968
--- /dev/null
+++ b/src/pizzeria/ingredients/Pepperoni.java
@@ -0,0 +1,5 @@
+package pizzeria.ingredients;
+
+public interface Pepperoni {
+	public String toString();
+}
diff --git a/src/pizzeria/ingredients/PepperoniPizza.java b/src/pizzeria/ingredients/PepperoniPizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..9345487cefee2590b91409284901679e7265fbd9
--- /dev/null
+++ b/src/pizzeria/ingredients/PepperoniPizza.java
@@ -0,0 +1,17 @@
+package pizzeria.ingredients;
+
+public class PepperoniPizza extends Pizza {
+ 
+	public PepperoniPizza(PizzaIngredientFactory ingredientFactory) {
+		this.ingredientFactory = ingredientFactory;
+	}
+ 
+	void prepare() {
+		System.out.println("Preparing " + name);
+		dough = ingredientFactory.createDough();
+		sauce = ingredientFactory.createSauce();
+		cheese = ingredientFactory.createCheese();
+		veggies = ingredientFactory.createVeggies();
+		pepperoni = ingredientFactory.createPepperoni();
+	}
+}
diff --git a/src/pizzeria/ingredients/PlumTomatoSauce.java b/src/pizzeria/ingredients/PlumTomatoSauce.java
new file mode 100644
index 0000000000000000000000000000000000000000..cf92466493f3352260795ef0cd77a6fa0d1f368e
--- /dev/null
+++ b/src/pizzeria/ingredients/PlumTomatoSauce.java
@@ -0,0 +1,7 @@
+package pizzeria.ingredients;
+
+public class PlumTomatoSauce implements Sauce {
+	public String toString() {
+		return "Tomato sauce with plum tomatoes";
+	}
+}
diff --git a/src/pizzeria/ingredients/RedPepper.java b/src/pizzeria/ingredients/RedPepper.java
new file mode 100644
index 0000000000000000000000000000000000000000..0dd71d78ab1c471484d00b531e54f5d5bbf16364
--- /dev/null
+++ b/src/pizzeria/ingredients/RedPepper.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class RedPepper implements Veggies {
+
+	public String toString() {
+		return "Red Pepper";
+	}
+}
diff --git a/src/pizzeria/ingredients/ReggianoCheese.java b/src/pizzeria/ingredients/ReggianoCheese.java
new file mode 100644
index 0000000000000000000000000000000000000000..6a9349e9b8ba832f883e7d400dbeff7de25df782
--- /dev/null
+++ b/src/pizzeria/ingredients/ReggianoCheese.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class ReggianoCheese implements Cheese {
+
+	public String toString() {
+		return "Reggiano Cheese";
+	}
+}
diff --git a/src/pizzeria/ingredients/Sauce.java b/src/pizzeria/ingredients/Sauce.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e40c09131ca71ebabece48457e2c0e48d072b2a
--- /dev/null
+++ b/src/pizzeria/ingredients/Sauce.java
@@ -0,0 +1,5 @@
+package pizzeria.ingredients;
+
+public interface Sauce {
+	public String toString();
+}
diff --git a/src/pizzeria/ingredients/SlicedPepperoni.java b/src/pizzeria/ingredients/SlicedPepperoni.java
new file mode 100644
index 0000000000000000000000000000000000000000..656796db119027db42a42ad60413ea1272aa104b
--- /dev/null
+++ b/src/pizzeria/ingredients/SlicedPepperoni.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class SlicedPepperoni implements Pepperoni {
+
+	public String toString() {
+		return "Sliced Pepperoni";
+	}
+}
diff --git a/src/pizzeria/ingredients/Spinach.java b/src/pizzeria/ingredients/Spinach.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd44c885aab5135152f125794fc071bce44f41ae
--- /dev/null
+++ b/src/pizzeria/ingredients/Spinach.java
@@ -0,0 +1,8 @@
+package pizzeria.ingredients;
+
+public class Spinach implements Veggies {
+
+	public String toString() {
+		return "Spinach";
+	}
+}
diff --git a/src/pizzeria/ingredients/ThickCrustDough.java b/src/pizzeria/ingredients/ThickCrustDough.java
new file mode 100644
index 0000000000000000000000000000000000000000..a712a31de437ef7b200c0feaeaa4bb33dbdb323a
--- /dev/null
+++ b/src/pizzeria/ingredients/ThickCrustDough.java
@@ -0,0 +1,7 @@
+package pizzeria.ingredients;
+
+public class ThickCrustDough implements Dough {
+	public String toString() {
+		return "ThickCrust style extra thick crust dough";
+	}
+}
diff --git a/src/pizzeria/ingredients/ThinCrustDough.java b/src/pizzeria/ingredients/ThinCrustDough.java
new file mode 100644
index 0000000000000000000000000000000000000000..6fa03a44733d702ae9f2aa3e4f924077d636a06c
--- /dev/null
+++ b/src/pizzeria/ingredients/ThinCrustDough.java
@@ -0,0 +1,7 @@
+package pizzeria.ingredients;
+
+public class ThinCrustDough implements Dough {
+	public String toString() {
+		return "Thin Crust Dough";
+	}
+}
diff --git a/src/pizzeria/ingredients/Veggies.java b/src/pizzeria/ingredients/Veggies.java
new file mode 100644
index 0000000000000000000000000000000000000000..a8a45a78316f48ad45ca5d5d6399883a92bc1a7e
--- /dev/null
+++ b/src/pizzeria/ingredients/Veggies.java
@@ -0,0 +1,5 @@
+package pizzeria.ingredients;
+
+public interface Veggies {
+	public String toString();
+}
diff --git a/src/pizzeria/pizza/ChicagoStyleCheesePizza.java b/src/pizzeria/pizza/ChicagoStyleCheesePizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..c37121ca49b2d12575e045b1a07ef4883620067c
--- /dev/null
+++ b/src/pizzeria/pizza/ChicagoStyleCheesePizza.java
@@ -0,0 +1,16 @@
+package pizzeria.pizza;
+
+public class ChicagoStyleCheesePizza extends Pizza {
+
+	public ChicagoStyleCheesePizza() { 
+		name = "Chicago Style Deep Dish Cheese Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/pizza/ChicagoStyleClamPizza.java b/src/pizzeria/pizza/ChicagoStyleClamPizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..c5bae9661bb8c43b51b35ef38663724afabf6e42
--- /dev/null
+++ b/src/pizzeria/pizza/ChicagoStyleClamPizza.java
@@ -0,0 +1,16 @@
+package pizzeria.pizza;
+
+public class ChicagoStyleClamPizza extends Pizza {
+	public ChicagoStyleClamPizza() {
+		name = "Chicago Style Clam Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+		toppings.add("Frozen Clams from Chesapeake Bay");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/pizza/ChicagoStylePepperoniPizza.java b/src/pizzeria/pizza/ChicagoStylePepperoniPizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..ae37b1f5dac81aa072440510223015b387141680
--- /dev/null
+++ b/src/pizzeria/pizza/ChicagoStylePepperoniPizza.java
@@ -0,0 +1,19 @@
+package pizzeria.pizza;
+
+public class ChicagoStylePepperoniPizza extends Pizza {
+	public ChicagoStylePepperoniPizza() {
+		name = "Chicago Style Pepperoni Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+		toppings.add("Black Olives");
+		toppings.add("Spinach");
+		toppings.add("Eggplant");
+		toppings.add("Sliced Pepperoni");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/pizza/ChicagoStyleVeggiePizza.java b/src/pizzeria/pizza/ChicagoStyleVeggiePizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..546b1688bf40591c46782802746c5ae45ec4f27d
--- /dev/null
+++ b/src/pizzeria/pizza/ChicagoStyleVeggiePizza.java
@@ -0,0 +1,18 @@
+package pizzeria.pizza;
+
+public class ChicagoStyleVeggiePizza extends Pizza {
+	public ChicagoStyleVeggiePizza() {
+		name = "Chicago Deep Dish Veggie Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+		toppings.add("Black Olives");
+		toppings.add("Spinach");
+		toppings.add("Eggplant");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/pizza/NYStyleCheesePizza.java b/src/pizzeria/pizza/NYStyleCheesePizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..ac5055d672f008a25675b3d6ed2dbe10cfdfa11f
--- /dev/null
+++ b/src/pizzeria/pizza/NYStyleCheesePizza.java
@@ -0,0 +1,12 @@
+package pizzeria.pizza;
+
+public class NYStyleCheesePizza extends Pizza {
+
+	public NYStyleCheesePizza() { 
+		name = "NY Style Sauce and Cheese Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+	}
+}
diff --git a/src/pizzeria/pizza/NYStyleClamPizza.java b/src/pizzeria/pizza/NYStyleClamPizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6635b049990cbf728718dc73020e4ab2af40031
--- /dev/null
+++ b/src/pizzeria/pizza/NYStyleClamPizza.java
@@ -0,0 +1,13 @@
+package pizzeria.pizza;
+
+public class NYStyleClamPizza extends Pizza {
+
+	public NYStyleClamPizza() {
+		name = "NY Style Clam Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+		toppings.add("Fresh Clams from Long Island Sound");
+	}
+}
diff --git a/src/pizzeria/pizza/NYStylePepperoniPizza.java b/src/pizzeria/pizza/NYStylePepperoniPizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..f036f6813cb76c16df31b40cee8cefda6d14522d
--- /dev/null
+++ b/src/pizzeria/pizza/NYStylePepperoniPizza.java
@@ -0,0 +1,17 @@
+package pizzeria.pizza;
+
+public class NYStylePepperoniPizza extends Pizza {
+
+	public NYStylePepperoniPizza() {
+		name = "NY Style Pepperoni Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+		toppings.add("Sliced Pepperoni");
+		toppings.add("Garlic");
+		toppings.add("Onion");
+		toppings.add("Mushrooms");
+		toppings.add("Red Pepper");
+	}
+}
diff --git a/src/pizzeria/pizza/NYStyleVeggiePizza.java b/src/pizzeria/pizza/NYStyleVeggiePizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..e3d5247ab4104f2b4efde93b248872fc5342d0c2
--- /dev/null
+++ b/src/pizzeria/pizza/NYStyleVeggiePizza.java
@@ -0,0 +1,16 @@
+package pizzeria.pizza;
+
+public class NYStyleVeggiePizza extends Pizza {
+
+	public NYStyleVeggiePizza() {
+		name = "NY Style Veggie Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+		toppings.add("Garlic");
+		toppings.add("Onion");
+		toppings.add("Mushrooms");
+		toppings.add("Red Pepper");
+	}
+}
diff --git a/src/pizzeria/pizza/Pizza.java b/src/pizzeria/pizza/Pizza.java
new file mode 100644
index 0000000000000000000000000000000000000000..191fc04ede4cf637bce0cf41d31c6f17b220269e
--- /dev/null
+++ b/src/pizzeria/pizza/Pizza.java
@@ -0,0 +1,50 @@
+package pizzeria.pizza;
+
+import java.util.ArrayList;
+
+public abstract class Pizza {
+	String name;
+	String dough;
+	String sauce;
+	ArrayList<String> toppings = new ArrayList<String>();
+ 
+	public void prepare() {
+		System.out.println("Preparing " + name);
+		System.out.println("Tossing dough...");
+		System.out.println("Adding sauce...");
+		System.out.println("Adding toppings: ");
+		for (int i = 0; i < toppings.size(); i++) {
+			System.out.println("   " + toppings.get(i));
+		}
+	}
+  
+	public void bake() {
+		System.out.println("Bake for 25 minutes at 350");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into diagonal slices");
+	}
+  
+	public void box() {
+		System.out.println("Place pizza in official PizzaStore box");
+	}
+ 
+	public String getName() {
+		return name;
+	}
+
+	public String toString() {
+		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/store/ChicagoPizzaStore.java b/src/pizzeria/store/ChicagoPizzaStore.java
new file mode 100644
index 0000000000000000000000000000000000000000..b3518a91b6cac78aa29f3564238b9a772c5ad1fc
--- /dev/null
+++ b/src/pizzeria/store/ChicagoPizzaStore.java
@@ -0,0 +1,18 @@
+package pizzeria.store;
+
+import pizzeria.pizza.*;
+
+public class ChicagoPizzaStore extends PizzaStore {
+
+	Pizza createPizza(String item) {
+        	if (item.equals("cheese")) {
+            		return new ChicagoStyleCheesePizza();
+        	} else if (item.equals("veggie")) {
+        	    	return new ChicagoStyleVeggiePizza();
+        	} else if (item.equals("clam")) {
+        	    	return new ChicagoStyleClamPizza();
+        	} else if (item.equals("pepperoni")) {
+            		return new ChicagoStylePepperoniPizza();
+        	} else return null;
+	}
+}
diff --git a/src/pizzeria/store/NYPizzaStore.java b/src/pizzeria/store/NYPizzaStore.java
new file mode 100644
index 0000000000000000000000000000000000000000..301ffcb1dd85e5cfd683a9aaefd951c97925a036
--- /dev/null
+++ b/src/pizzeria/store/NYPizzaStore.java
@@ -0,0 +1,19 @@
+package pizzeria.store;
+
+import pizzeria.pizza.*;
+
+public class NYPizzaStore extends PizzaStore {
+
+	Pizza createPizza(String item) {
+		if (item.equals("cheese")) {
+			return new NYStyleCheesePizza();
+		} else if (item.equals("veggie")) {
+			return new NYStyleVeggiePizza();
+		} else if (item.equals("clam")) {
+			return new NYStyleClamPizza();
+		} else if (item.equals("pepperoni")) {
+			return new NYStylePepperoniPizza();
+		} else return null;
+	}
+	
+}
diff --git a/src/pizzeria/store/PizzaStore.java b/src/pizzeria/store/PizzaStore.java
new file mode 100644
index 0000000000000000000000000000000000000000..c6833293e0798421f275c548a5a2bafe2c68d708
--- /dev/null
+++ b/src/pizzeria/store/PizzaStore.java
@@ -0,0 +1,18 @@
+package pizzeria.store;
+
+import pizzeria.pizza.Pizza;
+
+public abstract class PizzaStore {
+ 
+	abstract Pizza createPizza(String item);
+ 
+	public final Pizza orderPizza(String type) {
+		Pizza pizza = createPizza(type);
+		System.out.println("--- Making a " + pizza.getName() + " ---");
+		pizza.prepare();
+		pizza.bake();
+		pizza.cut();
+		pizza.box();
+		return pizza;
+	}
+}
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