public void execute() {
                CardList list = AllZoneUtil.getPlayerGraveyard(src.getController());
                list = list.filter(AllZoneUtil.creatures);

                if (list.isEmpty()) {
                    AllZone.getStack().addSimultaneousStackEntry(ability);

                    return;
                }

                if (src.getController().isHuman()) {
                    Object o = GuiUtils.getChoiceOptional("Select target card", list.toArray());
                    if (o != null) {
                        ability.setTargetCard((Card) o);
                        AllZone.getStack().addSimultaneousStackEntry(ability);

                    }
                }//if
                else//computer
                {
                    Card best = CardFactoryUtil.AI_getBestCreature(list);
                    ability.setTargetCard(best);
                    AllZone.getStack().addSimultaneousStackEntry(ability);

                }
            }