diff --git a/homework/bin/hw3/AbstractEvaluator.class b/homework/bin/hw3/AbstractEvaluator.class
index c7426a8c1022d40612c253684dd2d163856d2000..e292ec7e11988b11ad7de8cf051df84fe42226ed 100644
Binary files a/homework/bin/hw3/AbstractEvaluator.class and b/homework/bin/hw3/AbstractEvaluator.class differ
diff --git a/homework/bin/hw3/AllPrimesEvaluator.class b/homework/bin/hw3/AllPrimesEvaluator.class
index 1643a26844226170b00b6fd2c88f8a89e61ce898..8d807dddf854dc56d3d4ed24e64033720172b5d5 100644
Binary files a/homework/bin/hw3/AllPrimesEvaluator.class and b/homework/bin/hw3/AllPrimesEvaluator.class differ
diff --git a/homework/bin/hw3/CatchAllEvaluator.class b/homework/bin/hw3/CatchAllEvaluator.class
index 98fed3450459990cd14a89ee4f64888264cf9cb4..037a308aee912faeef6747a9a0ebdae25c27bb22 100644
Binary files a/homework/bin/hw3/CatchAllEvaluator.class and b/homework/bin/hw3/CatchAllEvaluator.class differ
diff --git a/homework/bin/hw3/OnePairEvaluator.class b/homework/bin/hw3/OnePairEvaluator.class
index 8df69c65286bea5f5d87a8652a893ec5f6d75567..22d73a645a06b178277d83bbfbfb2655b40e6201 100644
Binary files a/homework/bin/hw3/OnePairEvaluator.class and b/homework/bin/hw3/OnePairEvaluator.class differ
diff --git a/homework/src/hw3/AbstractEvaluator.java b/homework/src/hw3/AbstractEvaluator.java
index bbea23826e32f040e36d2d711e93e0511b826b3f..7787c367b3383a35812a3d97965134ef1005dc59 100644
--- a/homework/src/hw3/AbstractEvaluator.java
+++ b/homework/src/hw3/AbstractEvaluator.java
@@ -1,4 +1,6 @@
 package hw3;
+import api.Card;
+import api.Hand;
 import api.IEvaluator;
 
 /**
@@ -9,5 +11,16 @@ import api.IEvaluator;
  */
 public abstract class AbstractEvaluator implements IEvaluator
 {
+	protected String name;
+	protected int rank;
   //Abstract Methods
+	public abstract String getName();
+	public abstract int getRanking();
+	public abstract int cardsRequired();
+	public abstract int handSize();
+	public abstract boolean canSatisfy();
+	public abstract boolean canSubsetSatisfy(Card[] allCards);
+	public abstract Hand createHand(Card[] allCards, int[] subset);;
+	public abstract Hand getBestHand(Card[] allCards);
+	
 }
diff --git a/homework/src/hw3/AllPrimesEvaluator.java b/homework/src/hw3/AllPrimesEvaluator.java
index fa712c1c6e8435bbfce487c3ae368fe435dd8eee..ed70ab46ff39c373187539e60b25ae72cdadf943 100644
--- a/homework/src/hw3/AllPrimesEvaluator.java
+++ b/homework/src/hw3/AllPrimesEvaluator.java
@@ -73,5 +73,11 @@ public Hand getBestHand(Card[] allCards) {
 	// TODO Auto-generated method stub
 	return null;
 }
+
+@Override
+public boolean canSatisfy() {
+	// TODO Auto-generated method stub
+	return false;
+}
   
 }
diff --git a/homework/src/hw3/CatchAllEvaluator.java b/homework/src/hw3/CatchAllEvaluator.java
index 8394b5fb33565f3ede01ba04643eb9df096bbb71..0551a95fea9b80613af465c1bd22db08c11e85a3 100644
--- a/homework/src/hw3/CatchAllEvaluator.java
+++ b/homework/src/hw3/CatchAllEvaluator.java
@@ -72,6 +72,12 @@ public Hand getBestHand(Card[] allCards) {
 	// TODO Auto-generated method stub
 	return null;
 }
+
+@Override
+public boolean canSatisfy() {
+	// TODO Auto-generated method stub
+	return false;
+}
   
 
 }
diff --git a/homework/src/hw3/OnePairEvaluator.java b/homework/src/hw3/OnePairEvaluator.java
index c3cc621bee980418aa934d8eb100aa7cfac7a1d2..8344c751b5923cc382f3b50aaac0c8213d6ca94c 100644
--- a/homework/src/hw3/OnePairEvaluator.java
+++ b/homework/src/hw3/OnePairEvaluator.java
@@ -3,6 +3,7 @@ package hw3;
 import api.Card;
 import api.Hand;
 import api.IEvaluator;
+import util.SubsetFinder;
 
 /**
  * Evaluator for a hand containing (at least) two cards of the same rank.
@@ -47,7 +48,7 @@ public int getRanking() {
 @Override
 public int cardsRequired() {
 	// TODO Auto-generated method stub
-	return 0;
+	return 2;
 }
 
 @Override
@@ -58,13 +59,24 @@ public int handSize() {
 
 @Override
 public boolean canSatisfy(Card[] mainCards) {
-	// TODO Auto-generated method stub
+	if (mainCards.length < this.cardsRequired()){
+		return false;
+	}
+	else{
+		if (mainCards[0].equals(mainCards[1]))
+		{
+			return true;
+		}
+	}
 	return false;
 }
 
+
 @Override
 public boolean canSubsetSatisfy(Card[] allCards) {
 	// TODO Auto-generated method stub
+	//Find All the Subsets of allCards
+	//
 	return false;
 }