public List<List<Card>> getSets(List<Card> cards) {
        List<Card> flushSet;
        List<Card> pairSet1;
        List<Card> pairSet2;
        List<Card> straitSet;
        List<List<Card>> pairSets;
        List<List<Card>> sets;
        
        sets = new ArrayList<>();
        
        pairSets = Ranking.checkPairs(cards);
        straitSet = Ranking.checkStrait(cards);
        flushSet = Ranking.checkFlush(cards);

        pairSet1 = pairSets.get(0);
        pairSet2 = pairSets.get(1);        
        
        if (flushSet != null) sets.add(flushSet);
        if (straitSet != null) sets.add(straitSet);        
        if (pairSet1 != null) sets.add(pairSet1);        
        if (pairSet2 != null) sets.add(pairSet2);

        if (sets.size() < 4) {
            for (int i=0; i<4; i++) {
                sets.add(null);
            }
        }
        
        return sets;
    }