public void execute() {
                    int intermSumPower, intermSumToughness;
                    intermSumPower = intermSumToughness = 0;
                    CardList creats = AllZoneUtil.getPlayerGraveyard(card.getController());
                    creats = creats.filter(new CardListFilter() {
                        public boolean addCard(Card c) {
                            return c.isCreature() && !c.equals(card);
                        }
                    });

                    if (card.getController().isHuman()) {
                        if (creats.size() > 0) {
                            List<Card> selection = GuiUtils.getChoicesOptional("Select creatures to sacrifice", creats.toArray());

                            numCreatures[0] = selection.size();
                            for (int m = 0; m < selection.size(); m++) {
                                intermSumPower += selection.get(m).getBaseAttack();
                                intermSumToughness += selection.get(m).getBaseDefense();
                                AllZone.getGameAction().exile(selection.get(m));
                            }
                        }

                    }//human
                    else {
                        int count = 0;
                        for (int i = 0; i < creats.size(); i++) {
                            Card c = creats.get(i);
                            if (c.getNetAttack() <= 2 && c.getNetDefense() <= 3) {
                                intermSumPower += c.getBaseAttack();
                                intermSumToughness += c.getBaseDefense();
                                AllZone.getGameAction().exile(c);
                                count++;
                            }
                            //is this needed?
                            AllZone.getComputerBattlefield().updateObservers();
                        }
                        numCreatures[0] = count;
                    }
                    sumPower[0] = intermSumPower;
                    sumToughness[0] = intermSumToughness;
                    card.setBaseAttack(sumPower[0]);
                    card.setBaseDefense(sumToughness[0]);
                }