public void execute() {

            // remove all static effects
            for (int i = 0; i < storage.size(); i++) {
                removeStaticEffect(storage.get(i));
            }

            //clear the list
            storage = new ArrayList<StaticEffect>();

            //Gather Cards on the Battlefield with the stPump Keyword
            CardList cards_WithKeyword = AllZoneUtil.getCardsInPlay();
            cards_WithKeyword = cards_WithKeyword.getKeywordsContain("stPump");

            // check each card
            for (int i = 0; i < cards_WithKeyword.size(); i++) {
                Card cardWithKeyword = cards_WithKeyword.get(i);
                ArrayList<String> keywords = cardWithKeyword.getKeyword();

                // check each keyword of the card
                for (int j = 0; j < keywords.size(); j++) {
                    String keyword = keywords.get(j);

                    if (keyword.startsWith("stPump")) {
                    	
                        StaticEffect se = new StaticEffect();     //create a new StaticEffect
                        se.setSource(cardWithKeyword);
                        se.setKeywordNumber(j);


                        //get the affected cards
                        String k[] = keyword.split(":", 5);

                        if (specialConditionsMet(cardWithKeyword, k[3])) { //special Conditions are Threshold, etc.

                            final String affected = k[1];
                            final String specific[] = affected.split(",");
                            CardList affectedCards = AffectedCards(cardWithKeyword, k); // options are All, Self, Enchanted etc.
                            affectedCards = affectedCards.getValidCards(specific, cardWithKeyword.getController(), cardWithKeyword);
                            se.setAffectedCards(affectedCards);

                            String[] pt = k[2].split("/");

                            Card cardWithXValue;
                            String xString = cardWithKeyword.getSVar("X").split("$")[0];
                            Card cardWithYValue;
                            String yString = cardWithKeyword.getSVar("Y").split("$")[0];

                            if (xString.startsWith("Imprinted") && !cardWithKeyword.getImprinted().isEmpty()) {
                                cardWithXValue = cardWithKeyword.getImprinted().get(0);
                            } else cardWithXValue = cardWithKeyword;

                            if (yString.startsWith("Imprinted") && !cardWithKeyword.getImprinted().isEmpty()) {
                                cardWithYValue = cardWithKeyword.getImprinted().get(0);
                            } else cardWithYValue = cardWithKeyword;

                            int x = 0;
                            if (pt[0].contains("X") || pt[1].contains("X"))
                                x = CardFactoryUtil.xCount(cardWithXValue, cardWithKeyword.getSVar("X").split("\\$")[1]);
                            se.setXValue(x);

                            int y = 0;
                            if (pt[1].contains("Y"))
                                y = CardFactoryUtil.xCount(cardWithYValue, cardWithKeyword.getSVar("Y").split("\\$")[1]);
                            se.setYValue(y);

                            addStaticEffects(cardWithKeyword, affectedCards, k[2], x, y); //give the boni to the affected cards

                            storage.add(se); // store the information
                        }
                    }
                }
            }
        }