private CardList filterBadCards(Iterable<Card> sequence) {

        final ArrayList<Card> goodLand = new ArrayList<Card>();

        CardList out = CardFilter.filter(sequence, new CardListFilter() {
            public boolean addCard(Card c) {
                ArrayList<String> list = CardUtil.getColors(c);
                if (list.size() == 2) {
                    if (!(list.contains(color1) && list.contains(color2)))
                        return false;
                }
                return CardUtil.getColors(c).size() <= 2 && //only dual colored gold cards
                        !c.isLand() && //no land
                        !c.getSVar("RemRandomDeck").equals("True") &&
                        !c.getSVar("RemAIDeck").equals("True") || //OR very important
                        goodLand.contains(c.getName());
            }
        });

        return out;
    }//filterBadCards()