public static Hand getBestHand(Card[] hole, Card[] communalCards) {
		assert hole.length == 2;
		assert communalCards.length == 5;
		Hand[] allHands = new Hand[21]; 
		Card[] available = new Card[]{hole[0],hole[1],communalCards[0], communalCards[1],communalCards[2],communalCards[3],communalCards[4]};
		int counter = 0;
		for (int i = 0; i < 7; i++) {
			for (int j = i+1; j < 7; j++) {
				Hand hand =  generateHand(available,i, j);
				if(hand != null){
					allHands[counter++] = hand;
				}
			}
		}
		if(counter > 0){
			List<Hand> temp = Arrays.asList(allHands).subList(0, counter);
			Collections.sort(temp);
			return temp.get(temp.size()-1);
		}else{
			return null;
		}
	}