diff --git a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ConfrontTheUnknown.java b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ConfrontTheUnknown.java
index f19c1d0be84..cefff87aa97 100644
--- a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ConfrontTheUnknown.java
+++ b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/ConfrontTheUnknown.java
@@ -1,68 +1,78 @@
-/*
- * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those of the
- * authors and should not be interpreted as representing official policies, either expressed
- * or implied, of BetaSteward_at_googlemail.com.
- */
-package mage.sets.shadowsoverinnistrad;
-
-import java.util.UUID;
-import mage.abilities.effects.Effect;
-import mage.abilities.effects.common.continuous.BoostTargetEffect;
-import mage.abilities.effects.keyword.InvestigateEffect;
-import mage.cards.CardImpl;
-import mage.constants.CardType;
-import mage.constants.Duration;
-import mage.constants.Rarity;
-import mage.target.common.TargetCreaturePermanent;
-
-/**
- *
- * @author LevelX2
- */
-public class ConfrontTheUnknown extends CardImpl {
-
- public ConfrontTheUnknown(UUID ownerId) {
- super(ownerId, 198, "Confront the Unknown", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{G}");
- this.expansionSetCode = "SOI";
-
- // Investigate, then target creature gets +1/+1 until end of turn.
- Effect effect = new InvestigateEffect();
- effect.setText("Investigate");
- getSpellAbility().addEffect(effect);
- effect = new BoostTargetEffect(1, 1, Duration.EndOfTurn);
- effect.setText(", then target creature gets +1/+1 until end of turn ((To investigate, put a colorless Clue artifact token onto the battlefield with \"{2}, Sacrifice this artifact: Draw a card.\")");
- getSpellAbility().addEffect(effect);
- getSpellAbility().addTarget(new TargetCreaturePermanent());
- }
-
- public ConfrontTheUnknown(final ConfrontTheUnknown card) {
- super(card);
- }
-
- @Override
- public ConfrontTheUnknown copy() {
- return new ConfrontTheUnknown(this);
- }
-}
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.shadowsoverinnistrad;
+
+import java.util.UUID;
+import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.continuous.BoostTargetEffect;
+import mage.abilities.effects.keyword.InvestigateEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.filter.common.FilterControlledPermanent;
+import mage.filter.predicate.mageobject.SubtypePredicate;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ConfrontTheUnknown extends CardImpl {
+
+ private static final FilterControlledPermanent filter = new FilterControlledPermanent("each Clue you control");
+
+ static {
+ filter.add(new SubtypePredicate("Clue"));
+ }
+
+ public ConfrontTheUnknown(UUID ownerId) {
+ super(ownerId, 198, "Confront the Unknown", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{G}");
+ this.expansionSetCode = "SOI";
+
+ // Investigate, then target creature gets +1/+1 until end of turn for each Clue you control.
+ Effect effect = new InvestigateEffect();
+ effect.setText("Investigate");
+ getSpellAbility().addEffect(effect);
+ effect = new BoostTargetEffect(new PermanentsOnBattlefieldCount(filter), new PermanentsOnBattlefieldCount(filter), Duration.EndOfTurn);
+ effect.setText(", then target creature gets +1/+1 until end of turn for each Clue you control. (To investigate, "
+ + "put a colorless Clue artifact token onto the battlefield with \"{2}, Sacrifice this artifact: Draw a card.\")");
+ getSpellAbility().addEffect(effect);
+ getSpellAbility().addTarget(new TargetCreaturePermanent());
+ }
+
+ public ConfrontTheUnknown(final ConfrontTheUnknown card) {
+ super(card);
+ }
+
+ @Override
+ public ConfrontTheUnknown copy() {
+ return new ConfrontTheUnknown(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/FleetingMemories.java b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/FleetingMemories.java
index f9a3a984a53..5d46fad9e1a 100644
--- a/Mage.Sets/src/mage/sets/shadowsoverinnistrad/FleetingMemories.java
+++ b/Mage.Sets/src/mage/sets/shadowsoverinnistrad/FleetingMemories.java
@@ -1,70 +1,77 @@
-/*
- * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are
- * permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those of the
- * authors and should not be interpreted as representing official policies, either expressed
- * or implied, of BetaSteward_at_googlemail.com.
- */
-package mage.sets.shadowsoverinnistrad;
-
-import java.util.UUID;
-import mage.abilities.Ability;
-import mage.abilities.common.EntersBattlefieldTriggeredAbility;
-import mage.abilities.common.SacrificeAllTriggeredAbility;
-import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
-import mage.abilities.effects.keyword.InvestigateEffect;
-import mage.cards.CardImpl;
-import mage.constants.CardType;
-import mage.constants.Rarity;
-import mage.constants.TargetController;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.target.TargetPlayer;
-
-/**
- *
- * @author LevelX2
- */
-public class FleetingMemories extends CardImpl {
-
- public FleetingMemories(UUID ownerId) {
- super(ownerId, 62, "Fleeting Memories", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}");
- this.expansionSetCode = "SOI";
-
- // When Fleeting Memories enters the battlefield, investigate.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new InvestigateEffect(), false));
-
- // Whenever you sacrifice a Clue, target player puts the top three cards of his or her graveyard into his or her graveyard.
- Ability ability = new SacrificeAllTriggeredAbility(new PutTopCardOfLibraryIntoGraveTargetEffect(3), new FilterCreaturePermanent("Clue", "a Clue"), TargetController.YOU, false);
- ability.addTarget(new TargetPlayer());
- this.addAbility(ability);
- }
-
- public FleetingMemories(final FleetingMemories card) {
- super(card);
- }
-
- @Override
- public FleetingMemories copy() {
- return new FleetingMemories(this);
- }
-}
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.shadowsoverinnistrad;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.common.SacrificeAllTriggeredAbility;
+import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveTargetEffect;
+import mage.abilities.effects.keyword.InvestigateEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.filter.common.FilterControlledPermanent;
+import mage.filter.predicate.mageobject.SubtypePredicate;
+import mage.target.TargetPlayer;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class FleetingMemories extends CardImpl {
+
+ private static final FilterControlledPermanent filter = new FilterControlledPermanent("a Clue");
+
+ static {
+ filter.add(new SubtypePredicate("Clue"));
+ }
+
+ public FleetingMemories(UUID ownerId) {
+ super(ownerId, 62, "Fleeting Memories", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}");
+ this.expansionSetCode = "SOI";
+
+ // When Fleeting Memories enters the battlefield, investigate.
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new InvestigateEffect(), false));
+
+ // Whenever you sacrifice a Clue, target player puts the top three cards of his or her graveyard into his or her graveyard.
+ Ability ability = new SacrificeAllTriggeredAbility(new PutTopCardOfLibraryIntoGraveTargetEffect(3), filter, TargetController.YOU, false);
+ ability.addTarget(new TargetPlayer());
+ this.addAbility(ability);
+ }
+
+ public FleetingMemories(final FleetingMemories card) {
+ super(card);
+ }
+
+ @Override
+ public FleetingMemories copy() {
+ return new FleetingMemories(this);
+ }
+}