@Override
                public void resolve() {
                    if (card.getController().isComputer()) {
                        CardList creatures = AllZoneUtil.getCreaturesInPlay();
                        if (!creatures.isEmpty()) {
                            copyTarget[0] = CardFactoryUtil.AI_getBestCreature(creatures);
                        }
                    }

                    if (copyTarget[0] != null) {
                    	/*
                    	 * This cannot just be copyStats with an addSpellAbility loop from copyTarget[0].
                    	 * Unless we get a copySpellAbility.  Adding the SpellAbility from the
                    	 * source card causes many weird and Bad Things to happen.
                    	 */
                    	try {
                    		cloned[0] = cfact.getCard(copyTarget[0].getName(), card.getController());
                    	}
                    	catch(RuntimeException re) {
                    		//the copyTarget was not found in CardFactory
                    		cloned[0] = CardFactory.copyStats(copyTarget[0]);
                    	}
                        cloned[0].setOwner(card.getController());
                        cloned[0].setController(card.getController());
                        if (cardName.equals("Phyrexian Metamorph")) cloned[0].addType("Artifact");
                        cloned[0].setCloneOrigin(card);
                        cloned[0].addLeavesPlayCommand(leaves);
                        cloned[0].setCloneLeavesPlayCommand(leaves);
                        cloned[0].setCurSetCode(copyTarget[0].getCurSetCode());
                        cloned[0].setImageFilename(copyTarget[0].getImageFilename());
                        if (cardName.equals("Vesuvan Doppelganger")) {
                            cloned[0].addExtrinsicKeyword("At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color. If you do, this creature gains this ability.");
                            cloned[0].addColor("U", cloned[0], false, true);
                        } else if (cardName.equals("Quicksilver Gargantuan")) {
                            cloned[0].setBaseDefense(7);
                            cloned[0].setBaseAttack(7);
                        }

                        //Slight hack in case the cloner copies a card with triggers
                        for (Trigger t : cloned[0].getTriggers()) {
                            AllZone.getTriggerHandler().registerTrigger(t);
                        }

                        AllZone.getGameAction().moveToPlayFromHand(cloned[0]);
                        card.setCurrentlyCloningCard(cloned[0]);
                    }
                }