public static HandRank omaha(Cards hand, Cards board) {
        // In Omaha we must use 2 cards from our hand
        HandRank best = null;
        List<Cards> boardSubsets = choose3(board);
        List<Cards> handSubsets = choose2(hand);
        for (Cards boardCards : boardSubsets) {
            for (Cards handCards : handSubsets) {
                HandRank hr = Evaluate.defaultEvaluate(handCards, boardCards);
                if (best == null || hr.compareTo(best) > 1) {
                    best = hr;
                }
            }
        }
        return best;
    }