private CardGroup[] extractSameSigns(ArrayList<Card> cards) {
		CardGroup[] groups = new CardGroup[4];
		for (int i = 0; i < groups.length; i++) {
			groups[i] = new CardGroup();
		}
		for (Card card : cards) {
			groups[card.sign.ordinal()].add(card);
		}
		for (CardGroup cardGroup : groups) {
			cardGroup.sort();
		}

		Comparator<CardGroup> comparator = Collections.reverseOrder();
		Arrays.sort(groups, comparator); // biggest group first
		return groups;
	}