public boolean check(Hand hand) {
		List<Card> cards = new ArrayList<Card>(hand.getCards());
		Collections.sort(cards);
		Map<Suit, Integer> suits = new TreeMap<Suit, Integer>();
		Map<Rank, Integer> ranks = new TreeMap<Rank, Integer>();
		for (Card c : cards) {
			if (!suits.containsKey(c.getSuit()))
				suits.put(c.getSuit(), 1);
			else {
				suits.put(c.getSuit(), suits.get(c.getSuit()) + 1);
			}
			if (!ranks.containsKey(c.getRank()))
				ranks.put(c.getRank(), 1);
			else {
				ranks.put(c.getRank(), ranks.get(c.getRank()) + 1);
			}
		}

		return c(cards, cards.get(cards.size() - 1).getRank(), cards.get(0).getRank(), suits, ranks);
	}