@Override
            public void resolve() {

                CardList rebels = new CardList();
                CardList list = AllZoneUtil.getPlayerCardsInLibrary(sourceCard.getController());
                list = list.getType("Rebel");
                list = list.getPermanents();

                if (list.size() == 0) return;

                for (int i = 0; i < list.size(); i++) {
                    if (CardUtil.getConvertedManaCost(list.get(i).getManaCost()) <= converted) {
                        rebels.add(list.get(i));
                    }
                }
                if (rebels.size() == 0) return;

                if (sourceCard.getController().isComputer()) {
                    Card rebel = AI_getBestCreature(rebels);
                    AllZone.getGameAction().moveToPlay(rebel);
                } else //human
                {
                    Object o = GuiUtils.getChoiceOptional("Select target Rebel", rebels.toArray());
                    if (o != null) {
                        Card rebel = (Card) o;
                        AllZone.getGameAction().moveToPlay(rebel);
                        if (rebel.isAura()) {
                            Object obj = null;
                            if (rebel.hasKeyword("Enchant creature")) {
                                CardList creats = AllZoneUtil.getCreaturesInPlay();
                                obj = GuiUtils.getChoiceOptional("Pick a creature to attach "
                                        + rebel.getName() + " to", creats.toArray());
                            }
                            if (obj != null) {
                                Card target = (Card) obj;
                                if (AllZoneUtil.isCardInPlay(target)) {
                                    rebel.enchantCard(target);
                                }
                            }
                        }
                    }
                }
                sourceCard.getController().shuffle();
            }