private static void upkeep_Dark_Confidant() {
        final Player player = AllZone.getPhase().getPlayerTurn();

        CardList list = AllZoneUtil.getPlayerCardsInPlay(player);
        list = list.filter(new CardListFilter() {
            public boolean addCard(Card c) {
                return c.getName().equals("Dark Confidant") || c.getName().equals("Dark Tutelage");
            }
        });

        Ability ability;
        for (int i = 0; i < list.size(); i++) {
            final Card F_card = list.get(i);
            ability = new Ability(F_card, "0") {
                @Override
                public void resolve() {
                    CardList lib = AllZoneUtil.getPlayerCardsInLibrary(player);
                    if (lib.size() > 0) {
                        Card toMove = lib.get(0);
                        AllZone.getGameAction().moveToHand(toMove);
                        player.loseLife(toMove.getCMC(), F_card);
                    }
                }// resolve()
            };// Ability

            StringBuilder sb = new StringBuilder();
            sb.append(F_card).append(" - ").append("At the beginning of your upkeep, reveal the top card of your library and put that card into your hand. You lose life equal to its converted mana cost.");
            ability.setStackDescription(sb.toString());

            AllZone.getStack().addSimultaneousStackEntry(ability);

        }// for
    }