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

        CardList list = AllZoneUtil.getPlayerCardsInPlay(player, "Eldrazi Monument");

        Ability ability;
        for (int i = 0; i < list.size(); i++) {
            final Card card = list.get(i);
            ability = new Ability(list.get(i), "0") {
                @Override
                public void resolve() {
                    CardList creats = AllZoneUtil.getCreaturesInPlay(player);

                    if (creats.size() < 1) {
                        AllZone.getGameAction().sacrifice(card);
                        return;
                    }

                    if (player.isHuman()) {
                        Object o = GuiUtils.getChoiceOptional("Select creature to sacrifice",
                                creats.toArray());
                        Card sac = (Card) o;
                        if (sac == null) {
                            creats.shuffle();
                            sac = creats.get(0);
                        }
                        AllZone.getGameAction().sacrifice(sac);
                    } else//computer
                    {
                        CardListUtil.sortAttackLowFirst(creats);
                        AllZone.getGameAction().sacrifice(creats.get(0));
                    }
                }
            };// ability

            StringBuilder sb = new StringBuilder();
            sb.append("Eldrazi Monument - ").append(player).append(" sacrifices a creature.");
            ability.setStackDescription(sb.toString());

            AllZone.getStack().addSimultaneousStackEntry(ability);

        }

    }