diff --git a/Mage.Sets/src/mage/sets/coldsnap/ZurTheEnchanter.java b/Mage.Sets/src/mage/sets/coldsnap/ZurTheEnchanter.java
new file mode 100644
index 0000000000..e8e8f9db64
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/coldsnap/ZurTheEnchanter.java
@@ -0,0 +1,84 @@
+/*
+ *  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.coldsnap;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.AttacksTriggeredAbility;
+import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.Filter;
+import mage.filter.FilterCard;
+import mage.filter.predicate.mageobject.CardTypePredicate;
+import mage.filter.predicate.mageobject.ConvertedManaCostPredicate;
+import mage.target.common.TargetCardInLibrary;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ZurTheEnchanter extends CardImpl<ZurTheEnchanter> {
+
+    private static final FilterCard filter = new FilterCard("enchantment card with converted mana cost 3 or less");
+
+    static {
+        filter.add(new CardTypePredicate(CardType.ENCHANTMENT));
+        filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 4));
+    }
+
+    public ZurTheEnchanter(UUID ownerId) {
+        super(ownerId, 135, "Zur the Enchanter", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{W}{U}{B}");
+        this.expansionSetCode = "CSP";
+        this.supertype.add("Legendary");
+        this.subtype.add("Human");
+        this.subtype.add("Wizard");
+
+        this.color.setBlue(true);
+        this.color.setBlack(true);
+        this.color.setWhite(true);
+        this.power = new MageInt(1);
+        this.toughness = new MageInt(4);
+
+        // Flying
+        this.addAbility(FlyingAbility.getInstance());
+        // Whenever Zur the Enchanter attacks, you may search your library for an enchantment card with converted mana cost 3 or less and put it onto the battlefield. If you do, shuffle your library.
+        this.addAbility(new AttacksTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), false), true));
+    }
+
+    public ZurTheEnchanter(final ZurTheEnchanter card) {
+        super(card);
+    }
+
+    @Override
+    public ZurTheEnchanter copy() {
+        return new ZurTheEnchanter(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/AngelOfSalvation.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/AngelOfSalvation.java
new file mode 100644
index 0000000000..a50419dbec
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/AngelOfSalvation.java
@@ -0,0 +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.elspethvstezzeret;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.common.PreventDamageTargetAmountEffect;
+import mage.abilities.keyword.ConvokeAbility;
+import mage.abilities.keyword.FlashAbility;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.target.common.TargetCreatureOrPlayerAmount;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AngelOfSalvation extends CardImpl<AngelOfSalvation> {
+
+    public AngelOfSalvation(UUID ownerId) {
+        super(ownerId, 20, "Angel of Salvation", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{6}{W}{W}");
+        this.expansionSetCode = "DDF";
+        this.subtype.add("Angel");
+
+        this.color.setWhite(true);
+        this.power = new MageInt(5);
+        this.toughness = new MageInt(5);
+
+        // Flash; convoke
+        this.addAbility(FlashAbility.getInstance());
+        this.addAbility(new ConvokeAbility());
+        // Flying
+        this.addAbility(FlyingAbility.getInstance());
+        // When Angel of Salvation enters the battlefield, prevent the next 5 damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose.
+        Ability ability = new EntersBattlefieldTriggeredAbility(new PreventDamageTargetAmountEffect(Duration.EndOfTurn, 5));
+        ability.addTarget(new TargetCreatureOrPlayerAmount(5));
+        this.addAbility(ability);
+    }
+
+    public AngelOfSalvation(final AngelOfSalvation card) {
+        super(card);
+    }
+
+    @Override
+    public AngelOfSalvation copy() {
+        return new AngelOfSalvation(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/AssemblyWorker.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/AssemblyWorker.java
new file mode 100644
index 0000000000..e22432aea0
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/AssemblyWorker.java
@@ -0,0 +1,52 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AssemblyWorker extends mage.sets.timespiral.AssemblyWorker {
+
+    public AssemblyWorker(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 45;
+        this.expansionSetCode = "DDF";
+    }
+
+    public AssemblyWorker(final AssemblyWorker card) {
+        super(card);
+    }
+
+    @Override
+    public AssemblyWorker copy() {
+        return new AssemblyWorker(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/ClockworkHydra.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/ClockworkHydra.java
new file mode 100644
index 0000000000..307bb41653
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/ClockworkHydra.java
@@ -0,0 +1,52 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ClockworkHydra extends mage.sets.timespiral.ClockworkHydra {
+
+    public ClockworkHydra(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 55;
+        this.expansionSetCode = "DDF";
+    }
+
+    public ClockworkHydra(final ClockworkHydra card) {
+        super(card);
+    }
+
+    @Override
+    public ClockworkHydra copy() {
+        return new ClockworkHydra(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/EnergyChamber.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/EnergyChamber.java
new file mode 100644
index 0000000000..0b9c2e1344
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/EnergyChamber.java
@@ -0,0 +1,89 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.Mode;
+import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+import mage.filter.FilterPermanent;
+import mage.filter.predicate.Predicates;
+import mage.filter.predicate.mageobject.CardTypePredicate;
+import mage.target.TargetPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class EnergyChamber extends CardImpl<EnergyChamber> {
+
+    private static final FilterPermanent filter = new FilterPermanent("target artifact creature");
+    private static final FilterPermanent filter2 = new FilterPermanent("noncreature artifact");
+
+    static {
+        filter.add(new CardTypePredicate(CardType.ARTIFACT));
+        filter.add(new CardTypePredicate(CardType.CREATURE));
+        filter2.add(new CardTypePredicate(CardType.ARTIFACT));
+        filter2.add(Predicates.not(new CardTypePredicate(CardType.CREATURE)));
+    }
+
+    public EnergyChamber(UUID ownerId) {
+        super(ownerId, 64, "Energy Chamber", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}");
+        this.expansionSetCode = "DDF";
+
+        // At the beginning of your upkeep, choose one - Put a +1/+1 counter on target artifact creature;
+        Ability ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance(), Outcome.BoostCreature), TargetController.YOU, false);
+        ability.addTarget(new TargetPermanent(filter));
+
+        // or put a charge counter on target noncreature artifact.
+        Mode mode = new Mode();
+        mode.getEffects().add(new AddCountersTargetEffect(CounterType.CHARGE.createInstance(), Outcome.BoostCreature));
+        mode.getTargets().add(new TargetPermanent(filter2));
+        ability.addMode(mode);
+
+        this.addAbility(ability);
+
+    }
+
+    public EnergyChamber(final EnergyChamber card) {
+        super(card);
+    }
+
+    @Override
+    public EnergyChamber copy() {
+        return new EnergyChamber(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/Foil.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/Foil.java
new file mode 100644
index 0000000000..d0a3da6886
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/Foil.java
@@ -0,0 +1,52 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Foil extends mage.sets.prophecy.Foil {
+
+    public Foil(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 70;
+        this.expansionSetCode = "DDF";
+    }
+
+    public Foil(final Foil card) {
+        super(card);
+    }
+
+    @Override
+    public Foil copy() {
+        return new Foil(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/RazorBarrier.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/RazorBarrier.java
new file mode 100644
index 0000000000..41cbc9b5d5
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/RazorBarrier.java
@@ -0,0 +1,118 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.effects.common.continious.GainAbilityTargetEffect;
+import mage.abilities.keyword.ProtectionAbility;
+import mage.cards.CardImpl;
+import mage.choices.ChoiceColorOrArtifact;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.filter.FilterCard;
+import mage.filter.predicate.mageobject.CardTypePredicate;
+import mage.filter.predicate.mageobject.ColorPredicate;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.players.Player;
+import mage.target.Target;
+import mage.target.common.TargetControlledPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RazorBarrier extends CardImpl<RazorBarrier> {
+
+    public RazorBarrier(UUID ownerId) {
+        super(ownerId, 26, "Razor Barrier", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{W}");
+        this.expansionSetCode = "DDF";
+
+        this.color.setWhite(true);
+
+        // Target permanent you control gains protection from artifacts or from the color of your choice until end of turn.
+        this.getSpellAbility().addEffect(new RazorBarrierEffect(Duration.EndOfTurn));
+        Target target = new TargetControlledPermanent();
+        target.setRequired(true);
+        this.getSpellAbility().addTarget(target);
+    }
+
+    public RazorBarrier(final RazorBarrier card) {
+        super(card);
+    }
+
+    @Override
+    public RazorBarrier copy() {
+        return new RazorBarrier(this);
+    }
+}
+
+class RazorBarrierEffect extends GainAbilityTargetEffect {
+
+    public RazorBarrierEffect(Duration duration) {
+        super(new ProtectionAbility(new FilterCard()), duration);
+        staticText = "Target permanent you control gains protection from artifacts or from the color of your choice until end of turn";
+    }
+
+    public RazorBarrierEffect(final RazorBarrierEffect effect) {
+        super(effect);
+    }
+
+    @Override
+    public RazorBarrierEffect copy() {
+        return new RazorBarrierEffect(this);
+    }
+
+    @Override
+    public boolean apply(Game game, Ability source) {
+        Player controller = game.getPlayer(source.getControllerId());
+        if (controller != null) {
+            FilterCard protectionFilter = new FilterCard();
+            ChoiceColorOrArtifact choice = new ChoiceColorOrArtifact();
+            if (controller.choose(outcome, choice, game)) {
+                if (choice.isArtifactSelected()) {
+                    protectionFilter.add(new CardTypePredicate(CardType.ARTIFACT));
+                } else {
+                    protectionFilter.add(new ColorPredicate(choice.getColor()));
+                }
+
+                protectionFilter.setMessage(choice.getChoice());
+                ((ProtectionAbility) ability).setFilter(protectionFilter);
+                Permanent creature = game.getPermanent(source.getFirstTarget());
+                if (creature != null) {
+                    creature.addAbility(ability, source.getSourceId(), game);
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/RusticClachan.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/RusticClachan.java
new file mode 100644
index 0000000000..7b1cc4b2ef
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/RusticClachan.java
@@ -0,0 +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.elspethvstezzeret;
+
+import java.util.UUID;
+import mage.abilities.common.AsEntersBattlefieldAbility;
+import mage.abilities.costs.common.RevealTargetFromHandCost;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.TapSourceUnlessPaysEffect;
+import mage.abilities.keyword.ReinforceAbility;
+import mage.abilities.mana.WhiteManaAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.FilterCard;
+import mage.filter.predicate.mageobject.SubtypePredicate;
+import mage.target.common.TargetCardInHand;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RusticClachan extends CardImpl<RusticClachan> {
+
+    private static final FilterCard filter = new FilterCard("a Kithkin card from your hand");
+
+    static {
+        filter.add(new SubtypePredicate("Kithkin"));
+    }
+
+    public RusticClachan(UUID ownerId) {
+        super(ownerId, 34, "Rustic Clachan", Rarity.RARE, new CardType[]{CardType.LAND}, "");
+        this.expansionSetCode = "DDF";
+
+        // As Rustic Clachan enters the battlefield, you may reveal a Kithkin card from your hand. If you don't, Rustic Clachan enters the battlefield tapped.
+        this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal a Kithkin card from your hand. If you don't, {this} enters the battlefield tapped"));
+
+        // {tap}: Add {W} to your mana pool.
+        this.addAbility(new WhiteManaAbility());
+        // Reinforce 1-{1}{W}
+        this.addAbility(new ReinforceAbility(1, new ManaCostsImpl("{1}{W}")));
+    }
+
+    public RusticClachan(final RusticClachan card) {
+        super(card);
+    }
+
+    @Override
+    public RusticClachan copy() {
+        return new RusticClachan(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/SerratedBiskelion.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/SerratedBiskelion.java
new file mode 100644
index 0000000000..0ec7f71f6b
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/SerratedBiskelion.java
@@ -0,0 +1,73 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SerratedBiskelion extends CardImpl<SerratedBiskelion> {
+
+    public SerratedBiskelion(UUID ownerId) {
+        super(ownerId, 46, "Serrated Biskelion", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
+        this.expansionSetCode = "DDF";
+        this.subtype.add("Construct");
+
+        this.power = new MageInt(2);
+        this.toughness = new MageInt(2);
+
+        // {tap}: Put a -1/-1 counter on Serrated Biskelion and a -1/-1 counter on target creature.
+        Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.M1M1.createInstance(), true), new TapSourceCost());
+        ability.addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance()));
+        ability.addTarget(new TargetCreaturePermanent(true));
+        this.addAbility(ability);
+    }
+
+    public SerratedBiskelion(final SerratedBiskelion card) {
+        super(card);
+    }
+
+    @Override
+    public SerratedBiskelion copy() {
+        return new SerratedBiskelion(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/StormfrontRiders.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/StormfrontRiders.java
new file mode 100644
index 0000000000..88c0362a77
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/StormfrontRiders.java
@@ -0,0 +1,52 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class StormfrontRiders extends mage.sets.planarchaos.StormfrontRiders {
+
+    public StormfrontRiders(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 17;
+        this.expansionSetCode = "DDF";
+    }
+
+    public StormfrontRiders(final StormfrontRiders card) {
+        super(card);
+    }
+
+    @Override
+    public StormfrontRiders copy() {
+        return new StormfrontRiders(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/SwellOfCourage.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/SwellOfCourage.java
new file mode 100644
index 0000000000..f74b6ab624
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/SwellOfCourage.java
@@ -0,0 +1,67 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.dynamicvalue.common.GetXValue;
+import mage.abilities.dynamicvalue.common.ManacostVariableValue;
+import mage.abilities.effects.common.continious.BoostControlledEffect;
+import mage.abilities.keyword.ReinforceAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SwellOfCourage extends CardImpl<SwellOfCourage> {
+
+    public SwellOfCourage(UUID ownerId) {
+        super(ownerId, 31, "Swell of Courage", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{W}{W}");
+        this.expansionSetCode = "DDF";
+
+        this.color.setWhite(true);
+
+        // Creatures you control get +2/+2 until end of turn.
+        this.getSpellAbility().addEffect(new BoostControlledEffect(2,2, Duration.EndOfTurn));
+        // Reinforce X-{X}{W}{W}
+        this.addAbility(new ReinforceAbility(new ManacostVariableValue(), new ManaCostsImpl("{X}{W}{W}")));
+    }
+
+    public SwellOfCourage(final SwellOfCourage card) {
+        super(card);
+    }
+
+    @Override
+    public SwellOfCourage copy() {
+        return new SwellOfCourage(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/elspethvstezzeret/SynodCenturion.java b/Mage.Sets/src/mage/sets/elspethvstezzeret/SynodCenturion.java
new file mode 100644
index 0000000000..ecf92e6f11
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/elspethvstezzeret/SynodCenturion.java
@@ -0,0 +1,100 @@
+/*
+ *  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.elspethvstezzeret;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.StateTriggeredAbility;
+import mage.abilities.effects.common.SacrificeSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.game.Game;
+import mage.game.events.GameEvent;
+import mage.game.permanent.Permanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SynodCenturion extends CardImpl<SynodCenturion> {
+
+    public SynodCenturion(UUID ownerId) {
+        super(ownerId, 53, "Synod Centurion", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}");
+        this.expansionSetCode = "DDF";
+        this.subtype.add("Construct");
+
+        this.power = new MageInt(4);
+        this.toughness = new MageInt(4);
+
+        // When you control no other artifacts, sacrifice Synod Centurion.
+        this.addAbility(new SynodCenturionStateTriggeredAbility());
+    }
+
+    public SynodCenturion(final SynodCenturion card) {
+        super(card);
+    }
+
+    @Override
+    public SynodCenturion copy() {
+        return new SynodCenturion(this);
+    }
+
+    class SynodCenturionStateTriggeredAbility extends StateTriggeredAbility<SynodCenturionStateTriggeredAbility> {
+
+        public SynodCenturionStateTriggeredAbility() {
+            super(Zone.BATTLEFIELD, new SacrificeSourceEffect());
+        }
+
+        public SynodCenturionStateTriggeredAbility(final SynodCenturionStateTriggeredAbility ability) {
+            super(ability);
+        }
+
+        @Override
+        public SynodCenturionStateTriggeredAbility copy() {
+            return new SynodCenturionStateTriggeredAbility(this);
+        }
+
+        @Override
+        public boolean checkTrigger(GameEvent event, Game game) {
+            for (Permanent perm : game.getBattlefield().getAllActivePermanents(controllerId)) {
+                if (!perm.getId().equals(this.getSourceId()) &&  perm.getCardType().contains(CardType.ARTIFACT)) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        @Override
+        public String getRule() {
+            return "When you control no other artifacts, sacrifice {this}.";
+        }
+
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/fifthdawn/EnergyChamber.java b/Mage.Sets/src/mage/sets/fifthdawn/EnergyChamber.java
new file mode 100644
index 0000000000..5cdcbb7352
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/fifthdawn/EnergyChamber.java
@@ -0,0 +1,52 @@
+/*
+ *  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.fifthdawn;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class EnergyChamber extends mage.sets.elspethvstezzeret.EnergyChamber {
+
+    public EnergyChamber(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 117;
+        this.expansionSetCode = "5DN";
+    }
+
+    public EnergyChamber(final EnergyChamber card) {
+        super(card);
+    }
+
+    @Override
+    public EnergyChamber copy() {
+        return new EnergyChamber(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/fifthdawn/SynodCenturion.java b/Mage.Sets/src/mage/sets/fifthdawn/SynodCenturion.java
new file mode 100644
index 0000000000..77e1f1717b
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/fifthdawn/SynodCenturion.java
@@ -0,0 +1,52 @@
+/*
+ *  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.fifthdawn;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SynodCenturion extends mage.sets.elspethvstezzeret.SynodCenturion {
+
+    public SynodCenturion(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 161;
+        this.expansionSetCode = "5DN";
+    }
+
+    public SynodCenturion(final SynodCenturion card) {
+        super(card);
+    }
+
+    @Override
+    public SynodCenturion copy() {
+        return new SynodCenturion(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/futuresight/AngelOfSalvation.java b/Mage.Sets/src/mage/sets/futuresight/AngelOfSalvation.java
new file mode 100644
index 0000000000..06f59ee83c
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/futuresight/AngelOfSalvation.java
@@ -0,0 +1,52 @@
+/*
+ *  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.futuresight;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AngelOfSalvation extends mage.sets.elspethvstezzeret.AngelOfSalvation {
+
+    public AngelOfSalvation(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 1;
+        this.expansionSetCode = "FUT";
+    }
+
+    public AngelOfSalvation(final AngelOfSalvation card) {
+        super(card);
+    }
+
+    @Override
+    public AngelOfSalvation copy() {
+        return new AngelOfSalvation(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/lorwyn/AuntiesHovel.java b/Mage.Sets/src/mage/sets/lorwyn/AuntiesHovel.java
index 065ffdeed5..2810963eb1 100644
--- a/Mage.Sets/src/mage/sets/lorwyn/AuntiesHovel.java
+++ b/Mage.Sets/src/mage/sets/lorwyn/AuntiesHovel.java
@@ -46,7 +46,7 @@ import mage.target.common.TargetCardInHand;
  */
 public class AuntiesHovel extends CardImpl<AuntiesHovel> {
 
-    private static final FilterCard filter = new FilterCard("a Goblin from your hand");
+    private static final FilterCard filter = new FilterCard("a Goblin card from your hand");
     static {
         filter.add(new SubtypePredicate("Goblin"));
     }
diff --git a/Mage.Sets/src/mage/sets/magic2011/PhylacteryLich.java b/Mage.Sets/src/mage/sets/magic2011/PhylacteryLich.java
index f767d4c906..d3cc5da153 100644
--- a/Mage.Sets/src/mage/sets/magic2011/PhylacteryLich.java
+++ b/Mage.Sets/src/mage/sets/magic2011/PhylacteryLich.java
@@ -96,8 +96,9 @@ public class PhylacteryLich extends CardImpl<PhylacteryLich> {
         @Override
         public boolean checkTrigger(GameEvent event, Game game) {
             for (Permanent perm: game.getBattlefield().getAllActivePermanents(controllerId)) {
-                if (perm.getCounters().getCount("phylactery") > 0)
+                if (perm.getCounters().getCount("phylactery") > 0) {
                     return false;
+                }
             }
             return true;
         }
diff --git a/Mage.Sets/src/mage/sets/mirrodin/RazorBarrier.java b/Mage.Sets/src/mage/sets/mirrodin/RazorBarrier.java
new file mode 100644
index 0000000000..49b8783748
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/mirrodin/RazorBarrier.java
@@ -0,0 +1,52 @@
+/*
+ *  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.mirrodin;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RazorBarrier extends mage.sets.elspethvstezzeret.RazorBarrier {
+
+    public RazorBarrier(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 17;
+        this.expansionSetCode = "MRD";
+    }
+
+    public RazorBarrier(final RazorBarrier card) {
+        super(card);
+    }
+
+    @Override
+    public RazorBarrier copy() {
+        return new RazorBarrier(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/morningtide/RusticClachan.java b/Mage.Sets/src/mage/sets/morningtide/RusticClachan.java
new file mode 100644
index 0000000000..3e023e7d99
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/morningtide/RusticClachan.java
@@ -0,0 +1,52 @@
+/*
+ *  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.morningtide;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RusticClachan extends mage.sets.elspethvstezzeret.RusticClachan {
+
+    public RusticClachan(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 150;
+        this.expansionSetCode = "MOR";
+    }
+
+    public RusticClachan(final RusticClachan card) {
+        super(card);
+    }
+
+    @Override
+    public RusticClachan copy() {
+        return new RusticClachan(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/morningtide/SwellOfCourage.java b/Mage.Sets/src/mage/sets/morningtide/SwellOfCourage.java
new file mode 100644
index 0000000000..efc78a0d2c
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/morningtide/SwellOfCourage.java
@@ -0,0 +1,52 @@
+/*
+ *  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.morningtide;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SwellOfCourage extends mage.sets.elspethvstezzeret.SwellOfCourage {
+
+    public SwellOfCourage(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 26;
+        this.expansionSetCode = "MOR";
+    }
+
+    public SwellOfCourage(final SwellOfCourage card) {
+        super(card);
+    }
+
+    @Override
+    public SwellOfCourage copy() {
+        return new SwellOfCourage(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/planarchaos/StormfrontRiders.java b/Mage.Sets/src/mage/sets/planarchaos/StormfrontRiders.java
new file mode 100644
index 0000000000..3af1b91b1c
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/planarchaos/StormfrontRiders.java
@@ -0,0 +1,87 @@
+/*
+ *  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.planarchaos;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.common.ZoneChangeAllTriggeredAbility;
+import mage.abilities.effects.common.CreateTokenEffect;
+import mage.abilities.effects.common.ReturnToHandChosenControlledPermanentEffect;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.constants.Zone;
+import mage.filter.common.FilterControlledPermanent;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.other.OwnerPredicate;
+import mage.game.permanent.token.SoldierToken;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class StormfrontRiders extends CardImpl<StormfrontRiders> {
+
+    private static final FilterCreaturePermanent filter = new FilterCreaturePermanent();
+
+    static {
+        filter.add(new OwnerPredicate(TargetController.YOU));
+    }
+
+    public StormfrontRiders(UUID ownerId) {
+        super(ownerId, 20, "Stormfront Riders", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{W}");
+        this.expansionSetCode = "PLC";
+        this.subtype.add("Human");
+        this.subtype.add("Soldier");
+
+        this.color.setWhite(true);
+        this.power = new MageInt(4);
+        this.toughness = new MageInt(3);
+
+        // Flying
+        this.addAbility(FlyingAbility.getInstance());
+        // When Stormfront Riders enters the battlefield, return two creatures you control to their owner's hand.
+        this.addAbility(new EntersBattlefieldTriggeredAbility(new ReturnToHandChosenControlledPermanentEffect(new FilterControlledPermanent("creatures you control"), 2)));
+        // Whenever Stormfront Riders or another creature is returned to your hand from the battlefield, put a 1/1 white Soldier creature token onto the battlefield.
+        this.addAbility(new ZoneChangeAllTriggeredAbility(Zone.BATTLEFIELD, Zone.BATTLEFIELD, Zone.HAND, new CreateTokenEffect(new SoldierToken()),
+                filter,"Whenever {this} or another creature is returned to your hand from the battlefield, ", false));
+        
+    }
+
+    public StormfrontRiders(final StormfrontRiders card) {
+        super(card);
+    }
+
+    @Override
+    public StormfrontRiders copy() {
+        return new StormfrontRiders(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/prophecy/Foil.java b/Mage.Sets/src/mage/sets/prophecy/Foil.java
new file mode 100644
index 0000000000..d470c1937c
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/prophecy/Foil.java
@@ -0,0 +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.prophecy;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.costs.AlternativeCostSourceAbility;
+import mage.abilities.costs.common.DiscardTargetCost;
+import mage.abilities.effects.common.CounterTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.FilterCard;
+import mage.filter.predicate.mageobject.SubtypePredicate;
+import mage.target.TargetSpell;
+import mage.target.common.TargetCardInHand;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Foil extends CardImpl<Foil> {
+
+    private static final FilterCard filter = new FilterCard("an Island card");
+    static {
+        filter.add(new SubtypePredicate("Island"));
+    }
+
+    public Foil(UUID ownerId) {
+        super(ownerId, 34, "Foil", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{U}{U}");
+        this.expansionSetCode = "PCY";
+
+        this.color.setBlue(true);
+
+        // You may discard an Island card and another card rather than pay Foil's mana cost.
+        Ability ability = new AlternativeCostSourceAbility(new DiscardTargetCost(new TargetCardInHand(filter)));
+        ability.addCost(new DiscardTargetCost(new TargetCardInHand(new FilterCard("another card"))));
+        this.addAbility(ability);
+
+        // Counter target spell.
+        this.getSpellAbility().addEffect(new CounterTargetEffect());
+        this.getSpellAbility().addTarget(new TargetSpell());
+    }
+
+    public Foil(final Foil card) {
+        super(card);
+    }
+
+    @Override
+    public Foil copy() {
+        return new Foil(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/timespiral/AssemblyWorker.java b/Mage.Sets/src/mage/sets/timespiral/AssemblyWorker.java
new file mode 100644
index 0000000000..c4844ab9b1
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/timespiral/AssemblyWorker.java
@@ -0,0 +1,79 @@
+/*
+ *  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.timespiral;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.mageobject.SubtypePredicate;
+import mage.target.TargetPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AssemblyWorker extends CardImpl<AssemblyWorker> {
+
+    private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Assembly-Worker creature");
+
+    static {
+        filter.add(new SubtypePredicate("Assembly-Worker"));
+    }
+
+    public AssemblyWorker(UUID ownerId) {
+        super(ownerId, 248, "Assembly-Worker", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
+        this.expansionSetCode = "TSP";
+        this.subtype.add("Assembly-Worker");
+
+        this.power = new MageInt(2);
+        this.toughness = new MageInt(2);
+
+        // {tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.
+       Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new TapSourceCost());
+       ability.addTarget(new TargetPermanent(filter, true));
+       this.addAbility(ability);
+    }
+
+    public AssemblyWorker(final AssemblyWorker card) {
+        super(card);
+    }
+
+    @Override
+    public AssemblyWorker copy() {
+        return new AssemblyWorker(this);
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/timespiral/ClockworkHydra.java b/Mage.Sets/src/mage/sets/timespiral/ClockworkHydra.java
new file mode 100644
index 0000000000..ae535510c9
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/timespiral/ClockworkHydra.java
@@ -0,0 +1,121 @@
+/*
+ *  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.timespiral;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.AttacksOrBlocksTriggeredAbility;
+import mage.abilities.common.EntersBattlefieldAbility;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.OneShotEffect;
+import mage.abilities.effects.common.DamageTargetEffect;
+import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.counters.CounterType;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.players.Player;
+import mage.target.Target;
+import mage.target.common.TargetCreatureOrPlayer;
+import mage.target.targetpointer.FixedTarget;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class ClockworkHydra extends CardImpl<ClockworkHydra> {
+
+    public ClockworkHydra(UUID ownerId) {
+        super(ownerId, 253, "Clockwork Hydra", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}");
+        this.expansionSetCode = "TSP";
+        this.subtype.add("Hydra");
+        this.power = new MageInt(0);
+        this.toughness = new MageInt(0);
+
+        // Clockwork Hydra enters the battlefield with four +1/+1 counters on it.
+        Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance(4));
+        effect.setText("with four +1/+1 counters on it");
+        this.addAbility(new EntersBattlefieldAbility(effect));
+        // Whenever Clockwork Hydra attacks or blocks, remove a +1/+1 counter from it. If you do, Clockwork Hydra deals 1 damage to target creature or player.
+        this.addAbility(new AttacksOrBlocksTriggeredAbility(new ClockworkHydraEffect(), false));
+
+        // {tap}: Put a +1/+1 counter on Clockwork Hydra.
+        this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance(), true), new TapSourceCost()));
+    }
+
+    public ClockworkHydra(final ClockworkHydra card) {
+        super(card);
+    }
+
+    @Override
+    public ClockworkHydra copy() {
+        return new ClockworkHydra(this);
+    }
+
+}
+
+class ClockworkHydraEffect extends OneShotEffect<ClockworkHydraEffect> {
+
+    public ClockworkHydraEffect() {
+        super(Outcome.Damage);
+        this.staticText = "remove a +1/+1 counter from it. If you do, {this} deals 1 damage to target creature or player";
+    }
+
+    public ClockworkHydraEffect(final ClockworkHydraEffect effect) {
+        super(effect);
+    }
+
+    @Override
+    public ClockworkHydraEffect copy() {
+        return new ClockworkHydraEffect(this);
+    }
+
+    @Override
+    public boolean apply(Game game, Ability source) {
+        Permanent permanent = game.getPermanent(source.getSourceId());
+        Player controller = game.getPlayer(source.getControllerId());
+        if (controller != null && permanent != null && permanent.getCounters().getCount(CounterType.P1P1) > 0) {
+            permanent.removeCounters(CounterType.P1P1.createInstance(), game);
+            Target target = new TargetCreatureOrPlayer(true);
+            if (controller.chooseTarget(outcome, target, source, game)) {
+                Effect effect = new DamageTargetEffect(1);
+                effect.setTargetPointer(new FixedTarget(target.getFirstTarget()));
+                return effect.apply(game, source);
+            }
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/Mage.Sets/src/mage/sets/weatherlight/SerratedBiskelion.java b/Mage.Sets/src/mage/sets/weatherlight/SerratedBiskelion.java
new file mode 100644
index 0000000000..e2d3a75541
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/weatherlight/SerratedBiskelion.java
@@ -0,0 +1,52 @@
+/*
+ *  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.weatherlight;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SerratedBiskelion extends mage.sets.elspethvstezzeret.SerratedBiskelion {
+
+    public SerratedBiskelion(UUID ownerId) {
+        super(ownerId);
+        this.cardNumber = 156;
+        this.expansionSetCode = "WTH";
+    }
+
+    public SerratedBiskelion(final SerratedBiskelion card) {
+        super(card);
+    }
+
+    @Override
+    public SerratedBiskelion copy() {
+        return new SerratedBiskelion(this);
+    }
+}
diff --git a/Mage/src/mage/abilities/costs/AlternativeCostSourceAbility.java b/Mage/src/mage/abilities/costs/AlternativeCostSourceAbility.java
index 5a731088ad..d9acc404ee 100644
--- a/Mage/src/mage/abilities/costs/AlternativeCostSourceAbility.java
+++ b/Mage/src/mage/abilities/costs/AlternativeCostSourceAbility.java
@@ -156,7 +156,7 @@ public class AlternativeCostSourceAbility extends StaticAbility<AlternativeCostS
                sb.append(alternativeCost.getText(false));
                remarkText = alternativeCost.getReminderText();
            } else {
-               sb.append(" and/or ").append(alternativeCost.getText(true));
+               sb.append(" and ").append(alternativeCost.getText(true));
            }
            ++numberCosts;
        }
diff --git a/Mage/src/mage/abilities/dynamicvalue/common/AttackingCreatureCount.java b/Mage/src/mage/abilities/dynamicvalue/common/AttackingCreatureCount.java
index 437f522faf..3a276ebf5e 100644
--- a/Mage/src/mage/abilities/dynamicvalue/common/AttackingCreatureCount.java
+++ b/Mage/src/mage/abilities/dynamicvalue/common/AttackingCreatureCount.java
@@ -77,6 +77,6 @@ public class AttackingCreatureCount implements DynamicValue {
 
     @Override
     public String toString() {
-        return "1";
+        return "X";
     }
 }
diff --git a/Mage/src/mage/abilities/effects/common/PreventDamageTargetAmountEffect.java b/Mage/src/mage/abilities/effects/common/PreventDamageTargetAmountEffect.java
new file mode 100644
index 0000000000..21f278b593
--- /dev/null
+++ b/Mage/src/mage/abilities/effects/common/PreventDamageTargetAmountEffect.java
@@ -0,0 +1,145 @@
+/*
+ *  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.abilities.effects.common;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.Mode;
+import mage.abilities.effects.PreventionEffectImpl;
+import mage.constants.Duration;
+import mage.game.Game;
+import mage.game.events.GameEvent;
+import mage.game.permanent.Permanent;
+import mage.players.Player;
+import mage.target.Target;
+import mage.target.common.TargetCreatureOrPlayerAmount;
+
+/**
+ *
+ * @author LevelX2
+ */
+
+public class PreventDamageTargetAmountEffect extends PreventionEffectImpl<PreventDamageTargetAmountEffect> {
+
+    private final int amount;
+    private final Map<UUID, Integer> targetAmountMap = new HashMap<>();
+
+    public PreventDamageTargetAmountEffect(Duration duration, int amount) {
+        super(duration);
+        this.amount = amount;
+    }
+
+    public PreventDamageTargetAmountEffect(final PreventDamageTargetAmountEffect effect) {
+        super(effect);
+        this.amount = effect.amount;
+    }
+
+    @Override
+    public PreventDamageTargetAmountEffect copy() {
+        return new PreventDamageTargetAmountEffect(this);
+    }
+
+    @Override
+    public void init(Ability source, Game game) {
+        super.init(source, game);
+        Target target = source.getTargets().get(0);
+        Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId());
+        if (target instanceof TargetCreatureOrPlayerAmount && sourcePermanent != null) {
+            TargetCreatureOrPlayerAmount multiTarget = (TargetCreatureOrPlayerAmount) target;
+            for (UUID targetId: multiTarget.getTargets()) {
+                Player player = null;
+                Permanent permanent = game.getPermanent(targetId);
+                if (permanent == null) {
+                    player = game.getPlayer(targetId);
+                }
+                targetAmountMap.put(targetId, multiTarget.getTargetAmount(targetId));
+                StringBuilder sb = new StringBuilder(sourcePermanent.getName()).append(": Prevent the next ");
+                sb.append(multiTarget.getTargetAmount(targetId)).append(" damage to ");
+                if (player != null) {
+                    sb.append(player.getName());
+                } else if (permanent != null) {
+                    sb.append(permanent.getName());
+                }
+                game.informPlayers(sb.toString());
+
+            }
+        }
+    }
+
+    @Override
+    public boolean apply(Game game, Ability source) {
+        return true;
+    }
+
+    @Override
+    public boolean replaceEvent(GameEvent event, Ability source, Game game) {
+        int targetAmount = targetAmountMap.get(event.getTargetId());
+        GameEvent preventEvent = new GameEvent(GameEvent.EventType.PREVENT_DAMAGE, source.getFirstTarget(), source.getSourceId(), source.getControllerId(), event.getAmount(), false);
+        if (!game.replaceEvent(preventEvent)) {
+            if (event.getAmount() >= targetAmount) {
+                int damage = targetAmount;
+                event.setAmount(event.getAmount() - targetAmount);
+                targetAmountMap.remove(event.getTargetId());
+                game.fireEvent(GameEvent.getEvent(GameEvent.EventType.PREVENTED_DAMAGE, source.getFirstTarget(), source.getSourceId(), source.getControllerId(), damage));
+            } else {
+                int damage = event.getAmount();
+                event.setAmount(0);
+                targetAmountMap.put(event.getTargetId(), targetAmount -= damage);
+                game.fireEvent(GameEvent.getEvent(GameEvent.EventType.PREVENTED_DAMAGE, source.getFirstTarget(), source.getSourceId(), source.getControllerId(), damage));
+            }
+            if (targetAmountMap.isEmpty()) {
+                this.used = true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    public boolean applies(GameEvent event, Ability source, Game game) {
+        if (!used && super.applies(event, source, game) && targetAmountMap.containsKey(event.getTargetId())) {
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public String getText(Mode mode) {
+        // prevent the next 5 damage that would be dealt this turn to any number of target creatures and/or players, divided as you choose
+        StringBuilder sb = new StringBuilder();
+        sb.append("Prevent the next ").append(amount).append(" damage that would be dealt ");
+        if (duration.equals(Duration.EndOfTurn)) {
+            sb.append("this turn ");
+        }
+        sb.append("to any number of target creatures and/or players, divided as you choose");
+        return sb.toString();
+    }
+
+}
diff --git a/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java b/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java
index a7ba5f6bc8..fe5c561409 100644
--- a/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java
+++ b/Mage/src/mage/abilities/effects/common/ReturnToHandChosenControlledPermanentEffect.java
@@ -27,6 +27,8 @@
  */
 package mage.abilities.effects.common;
 
+import java.util.List;
+import java.util.UUID;
 import mage.abilities.Ability;
 import mage.abilities.effects.OneShotEffect;
 import mage.constants.Outcome;
@@ -36,6 +38,7 @@ import mage.game.Game;
 import mage.game.permanent.Permanent;
 import mage.players.Player;
 import mage.target.common.TargetControlledPermanent;
+import mage.util.CardUtil;
 
 /**
  *
@@ -43,17 +46,23 @@ import mage.target.common.TargetControlledPermanent;
  */
 public class ReturnToHandChosenControlledPermanentEffect extends OneShotEffect<ReturnToHandChosenControlledPermanentEffect> {
     
-    private FilterControlledPermanent filter;
+    private final FilterControlledPermanent filter;
+    private int number;
     
     public ReturnToHandChosenControlledPermanentEffect(FilterControlledPermanent filter) {
+        this(filter, 1);
+    }
+    public ReturnToHandChosenControlledPermanentEffect(FilterControlledPermanent filter, int number) {
         super(Outcome.ReturnToHand);
         this.filter = filter;
-        this.staticText = "return a " + filter.getMessage() + " to its owner's hand";
+        this.number = number;
+        this.staticText = getText();
     }
 
     public ReturnToHandChosenControlledPermanentEffect(final ReturnToHandChosenControlledPermanentEffect effect) {
         super(effect);
         this.filter = effect.filter;
+        this.number = effect.number;
     }
 
     @Override
@@ -65,19 +74,30 @@ public class ReturnToHandChosenControlledPermanentEffect extends OneShotEffect<R
     public boolean apply(Game game, Ability source) {
         Player player = game.getPlayer(source.getControllerId());
         if (player != null) {
-            TargetControlledPermanent target = new TargetControlledPermanent(filter);
-            target.setNotTarget(true);
+            TargetControlledPermanent target = new TargetControlledPermanent(number, number, filter, true);
             target.setRequired(true);
             if (player.choose(this.outcome, target, source.getSourceId(), game)) {
-                Permanent permanent = game.getPermanent(target.getFirstTarget());
-                if (permanent != null) {
-                    game.informPlayers(player.getName() + " returns " + permanent.getName() + " to his or her hand.");
-                    return permanent.moveToZone(Zone.HAND, source.getId(), game, false);
+                for (UUID targetCreatureId : (List<UUID>)target.getTargets()) {
+                    Permanent permanent = game.getPermanent(targetCreatureId);
+                    if (permanent != null) {
+                        player.moveCardToHandWithInfo(permanent, source.getSourceId(), game, Zone.BATTLEFIELD);
+                    }
                 }
             }
             return true;
         }
         return false;
     }
-    
+
+    private String getText() {
+        StringBuilder sb = new StringBuilder("return ");
+        sb.append(CardUtil.numberToText(number, "a"));
+        sb.append(" ").append(filter.getMessage());
+        if (number > 1) {
+            sb.append(" to its owner's hand");
+        } else {
+            sb.append(" to their owner's hand");
+        }
+        return sb.toString();
+    }
 }
diff --git a/Mage/src/mage/abilities/keyword/ReinforceAbility.java b/Mage/src/mage/abilities/keyword/ReinforceAbility.java
index a1a634d8af..9a4e5f4696 100644
--- a/Mage/src/mage/abilities/keyword/ReinforceAbility.java
+++ b/Mage/src/mage/abilities/keyword/ReinforceAbility.java
@@ -4,23 +4,30 @@ package mage.abilities.keyword;
 import mage.abilities.common.SimpleActivatedAbility;
 import mage.abilities.costs.Cost;
 import mage.abilities.costs.common.DiscardSourceCost;
+import mage.abilities.dynamicvalue.DynamicValue;
+import mage.abilities.dynamicvalue.common.StaticValue;
 import mage.abilities.effects.common.counter.AddCountersTargetEffect;
 import mage.constants.Zone;
 import mage.counters.CounterType;
 import mage.target.common.TargetCreaturePermanent;
 
 public class ReinforceAbility extends SimpleActivatedAbility {
-    private int count;
+    private DynamicValue count;
     private Cost cost;
 
     public ReinforceAbility(int count, Cost cost) {
-        super(Zone.HAND, new AddCountersTargetEffect(CounterType.P1P1.createInstance(count)), cost);
+        this(new StaticValue(count), cost);
+    }
+
+    public ReinforceAbility(DynamicValue count, Cost cost) {
+        super(Zone.HAND, new AddCountersTargetEffect(CounterType.P1P1.createInstance(0), count), cost);
         this.addCost(new DiscardSourceCost());
         this.addTarget(new TargetCreaturePermanent());
         this.cost = cost.copy();
         this.count = count;
     }
 
+
     public ReinforceAbility(final ReinforceAbility ability) {
         super(ability);
         this.cost = ability.cost.copy();
@@ -34,6 +41,11 @@ public class ReinforceAbility extends SimpleActivatedAbility {
 
     @Override
     public String getRule() {
-        return "Reinforce " + count + " - " + cost.getText();
+        StringBuilder sb = new StringBuilder("Reinforce ");
+        sb.append(count.toString()).append(" - ");
+        sb.append(cost.getText());
+        sb.append(" <i>(").append(cost.getText()).append("Discard this card: Put ");
+        sb.append(count.toString()).append(" +1/+1 counters on target creature.");
+        return sb.toString();
     }
 }
diff --git a/Mage/src/mage/target/TargetAmount.java b/Mage/src/mage/target/TargetAmount.java
index 1a22b943bd..9c83080c5f 100644
--- a/Mage/src/mage/target/TargetAmount.java
+++ b/Mage/src/mage/target/TargetAmount.java
@@ -128,7 +128,7 @@ public abstract class TargetAmount<T extends TargetAmount<T>> extends TargetImpl
 
     @Override
     public List<T> getTargetOptions(Ability source, Game game) {
-        List<T> options = new ArrayList<T>();
+        List<T> options = new ArrayList<>();
         Set<UUID> possibleTargets = possibleTargets(source.getSourceId(), source.getControllerId(), game);
 
         addTargets(this, possibleTargets, options, source, game);
@@ -146,7 +146,7 @@ public abstract class TargetAmount<T extends TargetAmount<T>> extends TargetImpl
                 t.addTarget(targetId, n, source, game, true);
                 if (t.remainingAmount > 0) {
                     if (targets.size() > 1) {
-                        Set<UUID> newTargets = new HashSet<UUID>();
+                        Set<UUID> newTargets = new HashSet<>();
                         for (UUID newTarget: targets) {
                             if (!newTarget.equals(targetId)) {
                                 newTargets.add(newTarget);
diff --git a/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java b/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java
index ef6bd182eb..b5327623fa 100644
--- a/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java
+++ b/Mage/src/mage/target/common/TargetCreatureOrPlayerAmount.java
@@ -164,7 +164,7 @@ public class TargetCreatureOrPlayerAmount extends TargetAmount<TargetCreatureOrP
 
     @Override
     public Set<UUID> possibleTargets(UUID sourceId, UUID sourceControllerId, Game game) {
-        Set<UUID> possibleTargets = new HashSet<UUID>();
+        Set<UUID> possibleTargets = new HashSet<>();
         MageObject targetSource = game.getObject(sourceId);
         for (UUID playerId: game.getPlayer(sourceControllerId).getInRange()) {
             Player player = game.getPlayer(playerId);
@@ -182,7 +182,7 @@ public class TargetCreatureOrPlayerAmount extends TargetAmount<TargetCreatureOrP
 
     @Override
     public Set<UUID> possibleTargets(UUID sourceControllerId, Game game) {
-        Set<UUID> possibleTargets = new HashSet<UUID>();
+        Set<UUID> possibleTargets = new HashSet<>();
         for (UUID playerId: game.getPlayer(sourceControllerId).getInRange()) {
             Player player = game.getPlayer(playerId);
             if (player != null && filter.match(player, game)) {
diff --git a/Utils/BlockedFlyerTrace.txt b/Utils/BlockedFlyerTrace.txt
index 1039ab50a8..e57e0a65a8 100644
--- a/Utils/BlockedFlyerTrace.txt
+++ b/Utils/BlockedFlyerTrace.txt
@@ -144,103 +144,72 @@ ERROR [2013-07-01 15:46 [59:945]] TraceUtil[pool-3-thread-7]: [935461d9-1835-46f
 ERROR [2013-07-01 15:46 [59:945]] TraceUtil[pool-3-thread-7]: [935461d9-1835-46f1-aa75-45e37a018161]         test_zone: LIBRARY
 ERROR [2013-07-01 15:46 [59:945]] TraceUtil[pool-3-thread-7]: [935461d9-1835-46f1-aa75-45e37a018161] 
 
-WARN  [2014-02-18 20:36 [55:460]] TraceUtil[pool-2-thread-66]: Found creature with intimidate blocked by non artifact not sharing color creature
-ERROR [2014-02-18 20:36 [55:461]] Tracing game state...
-ERROR [2014-02-18 20:36 [55:462]] Asphodel Wanderer could block Warchanter of Mogis
-ERROR [2014-02-18 20:36 [55:462]]
-ERROR [2014-02-18 20:36 [55:463]] Attacker abilities:
-ERROR [2014-02-18 20:36 [55:464]]      Cast Warchanter of Mogis, id=96c1f6b5-8e44-41e3-87db-c8075c1a06eb
-ERROR [2014-02-18 20:36 [55:465]]      <i>Inspired</i> - Whenever {this} becomes untapped, Target creature you control gains Intimidate until end of turn., id=06cac06c-89d3-4779-806c-397f8f369d6c
-ERROR [2014-02-18 20:36 [55:465]]      Intimidate, id=16012faf-5584-42f2-bc49-fa30f1f54b7b
-ERROR [2014-02-18 20:36 [55:466]] Blocker abilities:
-ERROR [2014-02-18 20:36 [55:466]]      Cast Asphodel Wanderer, id=25f47911-e597-4745-add6-22796e32705c
-ERROR [2014-02-18 20:36 [55:467]]      {2}{B}: Regenerate {this}., id=6e76d7c4-38d0-49d0-804d-7c401ff784ec
-ERROR [2014-02-18 20:36 [55:473]]
-ERROR [2014-02-18 20:36 [55:474]] Flying ability id: 87c77737-7d0e-45d4-aab6-9d164b30e555
-ERROR [2014-02-18 20:36 [55:475]] Reach ability id: 4b9f81ca-6448-4c44-8894-d1f8db7bdd17
-ERROR [2014-02-18 20:36 [55:475]]
-ERROR [2014-02-18 20:36 [55:476]] Restriction effects:
-ERROR [2014-02-18 20:36 [55:477]]     mage.abilities.keyword.FlyingEffect@1a1f2f4e
-ERROR [2014-02-18 20:36 [55:477]]         id=dc298313-227c-4aca-a530-649686ecf004
-ERROR [2014-02-18 20:36 [55:478]]         applies to attacker=false
-ERROR [2014-02-18 20:36 [55:479]]         applies to blocker=false
-ERROR [2014-02-18 20:36 [55:500]]     mage.abilities.effects.common.combat.UnblockableSourceEffect@83b38cb
-ERROR [2014-02-18 20:36 [55:500]]         id=e1e6fb76-2acd-4f3c-84e8-bff03a088263
-ERROR [2014-02-18 20:36 [55:501]]         applies to attacker=true
-ERROR [2014-02-18 20:36 [55:502]]         applies to blocker=false
-ERROR [2014-02-18 20:36 [55:503]]     mage.abilities.effects.common.combat.UnblockableAttachedEffect@7993f5ef
-ERROR [2014-02-18 20:36 [55:503]]         id=97fb7fae-c2ee-4edb-8694-e432065433e2
-ERROR [2014-02-18 20:36 [55:504]]         applies to attacker=false
-ERROR [2014-02-18 20:36 [55:505]]         applies to blocker=false
-ERROR [2014-02-18 20:36 [55:505]]     mage.abilities.effects.common.combat.UnblockableAttachedEffect@51758ff6
-ERROR [2014-02-18 20:36 [55:506]]         id=a88699ee-44dd-4506-87fd-ea45160f0149
-ERROR [2014-02-18 20:36 [55:507]]         applies to attacker=false
-ERROR [2014-02-18 20:36 [55:507]]         applies to blocker=false
-ERROR [2014-02-18 20:36 [55:514]]     mage.abilities.keyword.IntimidateEffect@a120547
-ERROR [2014-02-18 20:36 [55:515]]         id=f884b7e8-2cfb-473f-942e-c34089276cd1
-ERROR [2014-02-18 20:36 [55:515]]         applies to attacker=true
-ERROR [2014-02-18 20:36 [55:516]]         applies to blocker=false
-
-
-ERROR [2014-02-18 20:36 [55:517]]         instanceof StaticAbility: true, ability=Flying
-ERROR [2014-02-18 20:36 [55:517]]         usable zone: false, ability=Flying
-ERROR [2014-02-18 20:36 [55:518]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:519]]         object: null
-ERROR [2014-02-18 20:36 [55:538]]         test_zone: null
-
-ERROR [2014-02-18 20:36 [55:539]]         instanceof StaticAbility: true, ability={this} is unblockable.
-ERROR [2014-02-18 20:36 [55:540]]         usable zone: false, ability={this} is unblockable.
-ERROR [2014-02-18 20:36 [55:540]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:541]]         object: mage.sets.bornofthegods.FlitterstepEidolon@3386337c
-ERROR [2014-02-18 20:36 [55:542]]         contains ability: true
-ERROR [2014-02-18 20:36 [55:542]]         test_zone: LIBRARY
-
-ERROR [2014-02-18 20:36 [55:543]]         instanceof StaticAbility: true, ability=Enchanted creature gets +1/+1. Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:549]]         usable zone: false, ability=Enchanted creature gets +1/+1. Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:550]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:551]]         object: mage.sets.bornofthegods.FlitterstepEidolon@3386337c
-ERROR [2014-02-18 20:36 [55:552]]         contains ability: true
-ERROR [2014-02-18 20:36 [55:553]]         test_zone: LIBRARY
-
-ERROR [2014-02-18 20:36 [55:553]]         instanceof StaticAbility: true, ability=Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:554]]         usable zone: false, ability=Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:555]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:556]]         object: mage.sets.theros.AqueousForm@3580a9bb
-ERROR [2014-02-18 20:36 [55:556]]         contains ability: true
-ERROR [2014-02-18 20:36 [55:582]]         test_zone: OUTSIDE
-
-ERROR [2014-02-18 20:36 [55:583]]         ability=Intimidate, applies_to_attacker=true
-ERROR [2014-02-18 20:36 [55:583]]         instanceof StaticAbility: true, ability=Flying
-ERROR [2014-02-18 20:36 [55:584]]         usable zone: false, ability=Flying
-ERROR [2014-02-18 20:36 [55:585]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:585]]         object: null
-ERROR [2014-02-18 20:36 [55:586]]         test_zone: null
-
-ERROR [2014-02-18 20:36 [55:587]]         instanceof StaticAbility: true, ability={this} is unblockable.
-ERROR [2014-02-18 20:36 [55:587]]         usable zone: false, ability={this} is unblockable.
-ERROR [2014-02-18 20:36 [55:588]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:589]]         object: mage.sets.bornofthegods.FlitterstepEidolon@3386337c
-ERROR [2014-02-18 20:36 [55:589]]         contains ability: true
-ERROR [2014-02-18 20:36 [55:590]]         test_zone: LIBRARY
-
-ERROR [2014-02-18 20:36 [55:591]]         instanceof StaticAbility: true, ability=Enchanted creature gets +1/+1. Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:591]]         usable zone: false, ability=Enchanted creature gets +1/+1. Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:592]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:593]]         object: mage.sets.bornofthegods.FlitterstepEidolon@3386337c
-ERROR [2014-02-18 20:36 [55:593]]         contains ability: true
-ERROR [2014-02-18 20:36 [55:603]]         test_zone: LIBRARY
-
-ERROR [2014-02-18 20:36 [55:604]]         instanceof StaticAbility: true, ability=Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:605]]         usable zone: false, ability=Enchanted creature is unblockable.
-ERROR [2014-02-18 20:36 [55:605]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:606]]         object: mage.sets.theros.AqueousForm@3580a9bb
-ERROR [2014-02-18 20:36 [55:606]]         contains ability: true
-ERROR [2014-02-18 20:36 [55:607]]         test_zone: OUTSIDE
-
-ERROR [2014-02-18 20:36 [55:608]]         instanceof StaticAbility: true, ability=Intimidate
-ERROR [2014-02-18 20:36 [55:608]]         usable zone: false, ability=Intimidate
-ERROR [2014-02-18 20:36 [55:609]]         zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:609]]         object: Warchanter of Mogis-BNG
-ERROR [2014-02-18 20:36 [55:610]]         contains ability: true
-ERROR [2014-02-18 20:36 [55:610]]         test_zone: BATTLEFIELD
-ERROR [2014-02-18 20:36 [55:611]] 
\ No newline at end of file
+ERROR [2014-02-22 11:59 [46:811]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Tracing game state...
+ERROR [2014-02-22 11:59 [46:812]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Hopeful Eidolon could block Lifebane Zombie
+ERROR [2014-02-22 11:59 [46:813]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]
+ERROR [2014-02-22 11:59 [46:813]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Attacker abilities:
+ERROR [2014-02-22 11:59 [46:814]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      Cast Lifebane Zombie, id=c795314b-69b9-41c2-9f4b-4082eedf31da
+ERROR [2014-02-22 11:59 [46:814]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      Intimidate, id=e26a7967-9a37-4523-b389-3a4173847831
+ERROR [2014-02-22 11:59 [46:815]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      When {this} enters the battlefield, Target opponent reveals his or her hand. You choose a green or white creature card from it and exile that card., id=8963ba91-b592-4005-bcf3-384994f6ffb4
+ERROR [2014-02-22 11:59 [46:815]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Blocker abilities:
+ERROR [2014-02-22 11:59 [46:816]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      Cast Hopeful Eidolon, id=be90bc65-328a-49e6-9e92-2a79597a7476
+ERROR [2014-02-22 11:59 [46:816]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      , id=49e05f50-a805-40ed-ace9-2b3ee8fa9840
+ERROR [2014-02-22 11:59 [46:817]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      Cast Hopeful Eidolon using bestow, id=19fb1ec2-615c-4d51-96c1-d47d5bafc814
+ERROR [2014-02-22 11:59 [46:817]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      Lifelink <i>(Damage dealt by this creature also causes you to gain that much life.)</i>, id=a1615f43-e2f2-46f7-9d71-ed694be1e244
+ERROR [2014-02-22 11:59 [46:818]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      Enchanted creature gets +1/+1 and has lifelink., id=74667379-ea0e-4296-affe-aa3cc739bb20
+ERROR [2014-02-22 11:59 [46:818]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      Protection from Black, id=96702e91-2ad9-4bac-aa61-5f8285634b54
+ERROR [2014-02-22 11:59 [46:819]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]
+ERROR [2014-02-22 11:59 [46:819]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Flying ability id: af646a89-23b6-48c9-98dc-fc73dabe39a9
+ERROR [2014-02-22 11:59 [46:820]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Reach ability id: b9161eb7-32c3-4969-9752-e3fcae2f1b85
+ERROR [2014-02-22 11:59 [46:823]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Intimidate ability id: e26a7967-9a37-4523-b389-3a4173847831
+ERROR [2014-02-22 11:59 [46:824]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]
+ERROR [2014-02-22 11:59 [46:824]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177] Restriction effects:
+ERROR [2014-02-22 11:59 [46:825]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]     mage.abilities.keyword.FlyingEffect@59f32851
+ERROR [2014-02-22 11:59 [46:826]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         id=772a740e-e0de-4f2e-ac9f-60b9f5a1c88c
+ERROR [2014-02-22 11:59 [46:826]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to attacker=false
+ERROR [2014-02-22 11:59 [46:827]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to blocker=false
+ERROR [2014-02-22 11:59 [46:827]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]     mage.abilities.keyword.UnleashRestrictionEffect@6acf55a8
+ERROR [2014-02-22 11:59 [46:828]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         id=305f2174-0ebb-409b-b6a0-4fb63e722222
+ERROR [2014-02-22 11:59 [46:828]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to attacker=false
+ERROR [2014-02-22 11:59 [46:829]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to blocker=false
+ERROR [2014-02-22 11:59 [46:829]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]     mage.abilities.keyword.UnleashRestrictionEffect@31943951
+ERROR [2014-02-22 11:59 [46:830]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         id=31a81585-aee6-40ae-8a76-e676cec52bda
+ERROR [2014-02-22 11:59 [46:830]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to attacker=false
+ERROR [2014-02-22 11:59 [46:831]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to blocker=false
+ERROR [2014-02-22 11:59 [46:831]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]     mage.abilities.keyword.UnleashRestrictionEffect@39290267
+ERROR [2014-02-22 11:59 [46:832]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         id=275a48cb-fba0-4fb8-b2fb-c98cbadd78e6
+ERROR [2014-02-22 11:59 [46:832]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to attacker=false
+ERROR [2014-02-22 11:59 [46:833]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to blocker=false
+ERROR [2014-02-22 11:59 [46:834]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]     mage.abilities.keyword.UnleashRestrictionEffect@47b5d63a
+ERROR [2014-02-22 11:59 [46:834]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         id=8f00cf34-7635-4592-8d23-0f427e00cee9
+ERROR [2014-02-22 11:59 [46:835]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to attacker=false
+ERROR [2014-02-22 11:59 [46:835]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         applies to blocker=false
+ERROR [2014-02-22 11:59 [46:836]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.FlyingEffect@59f32851 id=772a740e-e0de-4f2e-ac9f-60b9f5a1c88c
+ERROR [2014-02-22 11:59 [46:836]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         instanceof StaticAbility: true, ability=Flying
+ERROR [2014-02-22 11:59 [46:837]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         usable zone: false, ability=Flying
+ERROR [2014-02-22 11:59 [46:837]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         zone: BATTLEFIELD
+ERROR [2014-02-22 11:59 [46:838]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         object: null
+ERROR [2014-02-22 11:59 [46:838]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         test_zone: null
+ERROR [2014-02-22 11:59 [46:839]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@6acf55a8 id=305f2174-0ebb-409b-b6a0-4fb63e722222
+ERROR [2014-02-22 11:59 [46:839]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:840]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@31943951 id=31a81585-aee6-40ae-8a76-e676cec52bda
+ERROR [2014-02-22 11:59 [46:840]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:841]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@39290267 id=275a48cb-fba0-4fb8-b2fb-c98cbadd78e6
+ERROR [2014-02-22 11:59 [46:842]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:842]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@47b5d63a id=8f00cf34-7635-4592-8d23-0f427e00cee9
+ERROR [2014-02-22 11:59 [46:843]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:843]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.FlyingEffect@59f32851 id=772a740e-e0de-4f2e-ac9f-60b9f5a1c88c
+ERROR [2014-02-22 11:59 [46:850]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         instanceof StaticAbility: true, ability=Flying
+ERROR [2014-02-22 11:59 [46:850]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         usable zone: false, ability=Flying
+ERROR [2014-02-22 11:59 [46:851]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         zone: BATTLEFIELD
+ERROR [2014-02-22 11:59 [46:852]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         object: null
+ERROR [2014-02-22 11:59 [46:852]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         test_zone: null
+ERROR [2014-02-22 11:59 [46:853]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@6acf55a8 id=305f2174-0ebb-409b-b6a0-4fb63e722222
+ERROR [2014-02-22 11:59 [46:853]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:854]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@31943951 id=31a81585-aee6-40ae-8a76-e676cec52bda
+ERROR [2014-02-22 11:59 [46:854]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:855]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@39290267 id=275a48cb-fba0-4fb8-b2fb-c98cbadd78e6
+ERROR [2014-02-22 11:59 [46:855]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:855]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]      effect=mage.abilities.keyword.UnleashRestrictionEffect@47b5d63a id=8f00cf34-7635-4592-8d23-0f427e00cee9
+ERROR [2014-02-22 11:59 [46:856]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]         ability=Unleash <i>(You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)</i>, applies_to_attacker=false
+ERROR [2014-02-22 11:59 [46:856]] TraceUtil[pool-2-thread-55]: [f5702a4c-cc77-43ec-98bc-d8ace2b2c177]