public static Hand findHighestFlushOrStraight(Set<Card> cardSet) {
		List<Card> flushCards = getAllFlushCards(cardSet);
		if (flushCards != null) {
			Suit suit = flushCards.get(0).suit;
			// If we find straight with flush cards, we have a straight flush
			Hand sfHand = findHighestStraight(new HashSet<Card>(flushCards)); 
			if (sfHand != null) {
				return Hand.StraightFlush(sfHand.ranks.get(0), suit);
			} else {
				return Hand.Flush(flushCards, suit);
			}
		} else {
			return findHighestStraight(cardSet);
		}
	}