diff --git a/src/pizzeria/ChicagoPizzaFactory.java b/src/pizzeria/ChicagoPizzaFactory.java
deleted file mode 100644
index 7ec9648f0f22d0b576b3840e0cfb1e33b02f15eb..0000000000000000000000000000000000000000
--- a/src/pizzeria/ChicagoPizzaFactory.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package pizzeria;
-
-public class ChicagoPizzaFactory {
-
-	public Pizza createPizza(String type) {
-		Pizza pizza = null;
-
-		if (type.equals("cheese")) {
-			pizza = new ChicagoStyleCheesePizza();
-		} else if (type.equals("pepperoni")) {
-			pizza = new ChicagoStylePepperoniPizza();
-		} else if (type.equals("clam")) {
-			pizza = new ChicagoStyleClamPizza();
-		} else if (type.equals("veggie")) {
-			pizza = new ChicagoStyleVeggiePizza();
-		}
-		return pizza;
-	}
-
-}
-
diff --git a/src/pizzeria/ChicagoPizzaStore.java b/src/pizzeria/ChicagoPizzaStore.java
index 228812185a6a405ccaecd9ba029e7a5ccca7b4f3..22851d20ad720363bd790d265d0729703347bec8 100644
--- a/src/pizzeria/ChicagoPizzaStore.java
+++ b/src/pizzeria/ChicagoPizzaStore.java
@@ -1,22 +1,16 @@
 package pizzeria;
 
-public class ChicagoPizzaStore {
-	ChicagoPizzaFactory factory;
- 
-	public ChicagoPizzaStore(ChicagoPizzaFactory factory) {
-		this.factory = factory;
-	}
- 
-	public Pizza orderPizza(String type) {
-		Pizza pizza;
- 
-		pizza = factory.createPizza(type);
- 
-		pizza.prepare();
-		pizza.bake();
-		//pizza.cut();
-		pizza.box();
+public class ChicagoPizzaStore extends PizzaStore {
 
-		return pizza;
+	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/ChicagoStyleCheesePizza.java b/src/pizzeria/ChicagoStyleCheesePizza.java
index 9708ec5394d319a998c5554db55fafa1b8dc6072..83b26eebe88ed19448184b7fc665c7d9065b17b1 100644
--- a/src/pizzeria/ChicagoStyleCheesePizza.java
+++ b/src/pizzeria/ChicagoStyleCheesePizza.java
@@ -10,7 +10,7 @@ public class ChicagoStyleCheesePizza extends Pizza {
 		toppings.add("Shredded Mozzarella Cheese");
 	}
  
-	public void cut() {
+	void cut() {
 		System.out.println("Cutting the pizza into square slices");
 	}
 }
diff --git a/src/pizzeria/ChicagoStyleClamPizza.java b/src/pizzeria/ChicagoStyleClamPizza.java
index 2216bbe3f0517ce9b3814dff1fc95b397c7eb43f..9999b8bf74257ce5294df3359ff2731cdaf2b7b5 100644
--- a/src/pizzeria/ChicagoStyleClamPizza.java
+++ b/src/pizzeria/ChicagoStyleClamPizza.java
@@ -10,7 +10,7 @@ public class ChicagoStyleClamPizza extends Pizza {
 		toppings.add("Frozen Clams from Chesapeake Bay");
 	}
  
-	public void cut() {
+	void cut() {
 		System.out.println("Cutting the pizza into square slices");
 	}
 }
diff --git a/src/pizzeria/ChicagoStylePepperoniPizza.java b/src/pizzeria/ChicagoStylePepperoniPizza.java
index 4618e685266093b138b1fb3b61ae0d37215c47a1..ad85beb1bee8abb94a3bc0f7b3d7a6919dfe0d10 100644
--- a/src/pizzeria/ChicagoStylePepperoniPizza.java
+++ b/src/pizzeria/ChicagoStylePepperoniPizza.java
@@ -13,7 +13,7 @@ public class ChicagoStylePepperoniPizza extends Pizza {
 		toppings.add("Sliced Pepperoni");
 	}
  
-	public void cut() {
+	void cut() {
 		System.out.println("Cutting the pizza into square slices");
 	}
 }
diff --git a/src/pizzeria/ChicagoStyleVeggiePizza.java b/src/pizzeria/ChicagoStyleVeggiePizza.java
index 9f2270851dd1a12fa7a9705ec2f97e1612d233e0..52f5968906f455201ea0f970904e7135b122f319 100644
--- a/src/pizzeria/ChicagoStyleVeggiePizza.java
+++ b/src/pizzeria/ChicagoStyleVeggiePizza.java
@@ -12,7 +12,7 @@ public class ChicagoStyleVeggiePizza extends Pizza {
 		toppings.add("Eggplant");
 	}
  
-	public void cut() {
+	void cut() {
 		System.out.println("Cutting the pizza into square slices");
 	}
 }
diff --git a/src/pizzeria/NYPizzaFactory.java b/src/pizzeria/NYPizzaFactory.java
deleted file mode 100644
index 6d6402ad11402f31a14db43e370beb2964ec38fb..0000000000000000000000000000000000000000
--- a/src/pizzeria/NYPizzaFactory.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package pizzeria;
-
-public class NYPizzaFactory {
-
-	public Pizza createPizza(String type) {
-		Pizza pizza = null;
-
-		if (type.equals("cheese")) {
-			pizza = new NYStyleCheesePizza();
-		} else if (type.equals("pepperoni")) {
-			pizza = new NYStylePepperoniPizza();
-		} else if (type.equals("clam")) {
-			pizza = new NYStyleClamPizza();
-		} else if (type.equals("veggie")) {
-			pizza = new NYStyleVeggiePizza();
-		}
-		return pizza;
-	}
-
-}
-
diff --git a/src/pizzeria/NYPizzaStore.java b/src/pizzeria/NYPizzaStore.java
index 6b4ce8a5a88630f5b2010384560b8e24dd3a22ef..9c940c8bf768e17b2a7884341fb553e3945dffb4 100644
--- a/src/pizzeria/NYPizzaStore.java
+++ b/src/pizzeria/NYPizzaStore.java
@@ -1,28 +1,17 @@
 package pizzeria;
 
-public class NYPizzaStore {
-	NYPizzaFactory factory;
- 
-	public NYPizzaStore(NYPizzaFactory factory) { 
-		this.factory = factory;
-	}
- 
-	public Pizza orderPizza(String type) {
-		Pizza pizza;
- 
-		pizza = factory.createPizza(type);
- 
-		pizza.prepare();
-		pizza.bake();
-		pizza.cut();
-		//pizza.box();
-		nyBox(pizza);
-		
-		return pizza;
-	}
-	
-	public void nyBox(Pizza pizza) {
-		System.out.println("NY style boxing " + pizza.name);
+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/Pizza.java b/src/pizzeria/Pizza.java
index 1d25eb2de32dd13ca1ff5da43d1fa2aa6bb1012e..65e3e4c86860c2ab1573faddba7184705dd92de0 100644
--- a/src/pizzeria/Pizza.java
+++ b/src/pizzeria/Pizza.java
@@ -2,34 +2,39 @@ package pizzeria;
 
 import java.util.ArrayList;
 
-abstract public class Pizza {
+public abstract class Pizza {
 	String name;
 	String dough;
 	String sauce;
 	ArrayList<String> toppings = new ArrayList<String>();
-
-	public String getName() {
-		return name;
-	}
-
-	public void prepare() {
+ 
+	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("Baking " + name);
+  
+	void bake() {
+		System.out.println("Bake for 25 minutes at 350");
 	}
-
-	public void cut() {
-		System.out.println("Cutting " + name);
+ 
+	void cut() {
+		System.out.println("Cutting the pizza into diagonal slices");
 	}
-
-	public void box() {
-		System.out.println("Boxing " + name);
+  
+	void box() {
+		System.out.println("Place pizza in official PizzaStore box");
+	}
+ 
+	public String getName() {
+		return name;
 	}
 
 	public String toString() {
-		// code to display pizza name and ingredients
 		StringBuffer display = new StringBuffer();
 		display.append("---- " + name + " ----\n");
 		display.append(dough + "\n");
@@ -41,3 +46,5 @@ abstract public class Pizza {
 	}
 }
 
+ 
+ 
diff --git a/src/pizzeria/PizzaStore.java b/src/pizzeria/PizzaStore.java
new file mode 100644
index 0000000000000000000000000000000000000000..38b89ecb152b3fca004f7de5253b3efeb55fc63f
--- /dev/null
+++ b/src/pizzeria/PizzaStore.java
@@ -0,0 +1,16 @@
+package pizzeria;
+
+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/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java
index 23bb5051960d27dcd5ea08b3eca10a98d385b4ed..a4ce31a7bbb9e7f5299dd3e91f3ebaab166606fa 100644
--- a/src/pizzeria/PizzaTestDrive.java
+++ b/src/pizzeria/PizzaTestDrive.java
@@ -3,17 +3,31 @@ package pizzeria;
 public class PizzaTestDrive {
  
 	public static void main(String[] args) {
-		NYPizzaFactory nyFactory = new NYPizzaFactory();
-		NYPizzaStore nyStore = new NYPizzaStore(nyFactory);
-
+		PizzaStore nyStore = new NYPizzaStore();
+		PizzaStore chicagoStore = new ChicagoPizzaStore();
+ 
 		Pizza pizza = nyStore.orderPizza("cheese");
-		System.out.println("We ordered a " + pizza.getName() + "\n");
+		System.out.println("Ethan ordered a " + pizza.getName() + "\n");
  
-		ChicagoPizzaFactory chicagoFactory = new ChicagoPizzaFactory();
-		ChicagoPizzaStore chicagoStore = new ChicagoPizzaStore(chicagoFactory);
-		
-		pizza = chicagoStore.orderPizza("veggie");
-		System.out.println("We 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");
 	}
 }