diff --git a/.gitattributes b/.gitattributes
index c0500e7b0d2..f3f2386a05b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -22,7 +22,28 @@ forge-core/.settings/org.eclipse.core.resources.prefs -text
forge-core/.settings/org.eclipse.jdt.core.prefs -text
forge-core/.settings/org.eclipse.m2e.core.prefs -text
forge-core/pom.xml -text
+forge-core/src/main/java/forge/Constant.java svneol=native#text/plain
+forge-core/src/main/java/forge/card/AggregationMethod.java -text
+forge-core/src/main/java/forge/card/CardCharacteristicName.java -text
+forge-core/src/main/java/forge/card/CardCoreType.java -text
forge-core/src/main/java/forge/card/CardRarity.java -text
+forge-core/src/main/java/forge/card/CardSplitType.java -text
+forge-core/src/main/java/forge/card/CardSuperType.java -text
+forge-core/src/main/java/forge/card/CardType.java -text
+forge-core/src/main/java/forge/card/ColorSet.java -text
+forge-core/src/main/java/forge/card/ICardCharacteristics.java -text
+forge-core/src/main/java/forge/card/ICardFace.java -text
+forge-core/src/main/java/forge/card/ICardRawAbilites.java -text
+forge-core/src/main/java/forge/card/MagicColor.java -text
+forge-core/src/main/java/forge/card/mana/IParserManaCost.java -text
+forge-core/src/main/java/forge/card/mana/ManaAtom.java -text
+forge-core/src/main/java/forge/card/mana/ManaCost.java -text
+forge-core/src/main/java/forge/card/mana/ManaCostParser.java -text
+forge-core/src/main/java/forge/card/mana/ManaCostShard.java -text
+forge-core/src/main/java/forge/card/mana/package-info.java svneol=native#text/plain
+forge-core/src/main/java/forge/package-info.java -text
+forge-core/src/main/java/forge/util/BinaryUtil.java -text
+forge-core/src/main/java/forge/util/package-info.java -text
forge-gui/.classpath -text
forge-gui/.project -text
forge-gui/.settings/org.eclipse.core.resources.prefs -text
@@ -14577,7 +14598,6 @@ forge-gui/src/main/html/js/jquery/jquery-1.9.1.min.js -text
forge-gui/src/main/html/js/observable.js -text
forge-gui/src/main/html/js/socket.js -text
forge-gui/src/main/java/forge/Card.java svneol=native#text/plain
-forge-gui/src/main/java/forge/CardCharacteristicName.java -text
forge-gui/src/main/java/forge/CardColor.java svneol=native#text/plain
forge-gui/src/main/java/forge/CardDamageHistory.java -text
forge-gui/src/main/java/forge/CardKeywords.java svneol=native#text/plain
@@ -14588,7 +14608,6 @@ forge-gui/src/main/java/forge/CardType.java svneol=native#text/plain
forge-gui/src/main/java/forge/CardUtil.java svneol=native#text/plain
forge-gui/src/main/java/forge/ColorChanger.java -text
forge-gui/src/main/java/forge/Command.java svneol=native#text/plain
-forge-gui/src/main/java/forge/Constant.java svneol=native#text/plain
forge-gui/src/main/java/forge/CounterType.java svneol=native#text/plain
forge-gui/src/main/java/forge/FThreads.java -text
forge-gui/src/main/java/forge/GameEntity.java -text
@@ -14602,32 +14621,22 @@ forge-gui/src/main/java/forge/ImageLoader.java -text
forge-gui/src/main/java/forge/Singletons.java svneol=native#text/plain
forge-gui/src/main/java/forge/StaticEffect.java svneol=native#text/plain
forge-gui/src/main/java/forge/StaticEffects.java svneol=native#text/plain
-forge-gui/src/main/java/forge/card/AggregationMethod.java -text
forge-gui/src/main/java/forge/card/BoosterGenerator.java svneol=native#text/plain
forge-gui/src/main/java/forge/card/CardAiHints.java -text
forge-gui/src/main/java/forge/card/CardBlock.java -text
forge-gui/src/main/java/forge/card/CardCharacteristics.java -text
-forge-gui/src/main/java/forge/card/CardCoreType.java -text
forge-gui/src/main/java/forge/card/CardDb.java -text
forge-gui/src/main/java/forge/card/CardEdition.java -text
forge-gui/src/main/java/forge/card/CardFace.java -text
forge-gui/src/main/java/forge/card/CardRules.java -text
forge-gui/src/main/java/forge/card/CardRulesPredicates.java -text
forge-gui/src/main/java/forge/card/CardRulesReader.java svneol=native#text/plain
-forge-gui/src/main/java/forge/card/CardSplitType.java -text
-forge-gui/src/main/java/forge/card/CardSuperType.java -text
-forge-gui/src/main/java/forge/card/CardType.java -text
-forge-gui/src/main/java/forge/card/ColorSet.java -text
forge-gui/src/main/java/forge/card/DeckHints.java -text
forge-gui/src/main/java/forge/card/EditionCollection.java svneol=native#text/plain
forge-gui/src/main/java/forge/card/FatPackTemplate.java -text
forge-gui/src/main/java/forge/card/FormatCollection.java -text
-forge-gui/src/main/java/forge/card/ICardCharacteristics.java -text
forge-gui/src/main/java/forge/card/ICardDatabase.java -text
-forge-gui/src/main/java/forge/card/ICardFace.java -text
-forge-gui/src/main/java/forge/card/ICardRawAbilites.java -text
forge-gui/src/main/java/forge/card/IUnOpenedProduct.java -text
-forge-gui/src/main/java/forge/card/MagicColor.java -text
forge-gui/src/main/java/forge/card/MetaSet.java -text
forge-gui/src/main/java/forge/card/TriggerReplacementBase.java -text
forge-gui/src/main/java/forge/card/UnOpenedMeta.java -text
@@ -14897,13 +14906,8 @@ forge-gui/src/main/java/forge/card/cost/CostUntap.java -text
forge-gui/src/main/java/forge/card/cost/CostUntapType.java -text
forge-gui/src/main/java/forge/card/cost/PaymentDecision.java -text
forge-gui/src/main/java/forge/card/cost/package-info.java svneol=native#text/plain
-forge-gui/src/main/java/forge/card/mana/IParserManaCost.java -text
forge-gui/src/main/java/forge/card/mana/Mana.java svneol=native#text/plain
-forge-gui/src/main/java/forge/card/mana/ManaAtom.java -text
-forge-gui/src/main/java/forge/card/mana/ManaCost.java -text
forge-gui/src/main/java/forge/card/mana/ManaCostBeingPaid.java svneol=native#text/plain
-forge-gui/src/main/java/forge/card/mana/ManaCostParser.java -text
-forge-gui/src/main/java/forge/card/mana/ManaCostShard.java -text
forge-gui/src/main/java/forge/card/mana/ManaPool.java svneol=native#text/plain
forge-gui/src/main/java/forge/card/mana/package-info.java svneol=native#text/plain
forge-gui/src/main/java/forge/card/package-info.java svneol=native#text/plain
@@ -15562,7 +15566,6 @@ forge-gui/src/main/java/forge/sound/SoundEffectType.java -text
forge-gui/src/main/java/forge/sound/SoundSystem.java -text
forge-gui/src/main/java/forge/util/Aggregates.java -text
forge-gui/src/main/java/forge/util/Base64Coder.java svneol=native#text/plain
-forge-gui/src/main/java/forge/util/BinaryUtil.java -text
forge-gui/src/main/java/forge/util/ComparableOp.java -text
forge-gui/src/main/java/forge/util/Expressions.java -text
forge-gui/src/main/java/forge/util/FileSection.java -text
diff --git a/forge-core/pom.xml b/forge-core/pom.xml
index 28914275327..dfd9d8fcee7 100644
--- a/forge-core/pom.xml
+++ b/forge-core/pom.xml
@@ -18,5 +18,10 @@
guava
14.0.1
+
+ org.apache.commons
+ commons-lang3
+ 3.1
+
diff --git a/forge-gui/src/main/java/forge/Constant.java b/forge-core/src/main/java/forge/Constant.java
similarity index 100%
rename from forge-gui/src/main/java/forge/Constant.java
rename to forge-core/src/main/java/forge/Constant.java
diff --git a/forge-gui/src/main/java/forge/card/AggregationMethod.java b/forge-core/src/main/java/forge/card/AggregationMethod.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/AggregationMethod.java
rename to forge-core/src/main/java/forge/card/AggregationMethod.java
diff --git a/forge-gui/src/main/java/forge/CardCharacteristicName.java b/forge-core/src/main/java/forge/card/CardCharacteristicName.java
similarity index 94%
rename from forge-gui/src/main/java/forge/CardCharacteristicName.java
rename to forge-core/src/main/java/forge/card/CardCharacteristicName.java
index b4fadcdfd73..81571df0f32 100644
--- a/forge-gui/src/main/java/forge/CardCharacteristicName.java
+++ b/forge-core/src/main/java/forge/card/CardCharacteristicName.java
@@ -1,4 +1,4 @@
-package forge;
+package forge.card;
/**
* TODO: Write javadoc for this type.
diff --git a/forge-gui/src/main/java/forge/card/CardCoreType.java b/forge-core/src/main/java/forge/card/CardCoreType.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/CardCoreType.java
rename to forge-core/src/main/java/forge/card/CardCoreType.java
diff --git a/forge-gui/src/main/java/forge/card/CardSplitType.java b/forge-core/src/main/java/forge/card/CardSplitType.java
similarity index 94%
rename from forge-gui/src/main/java/forge/card/CardSplitType.java
rename to forge-core/src/main/java/forge/card/CardSplitType.java
index 6869d8c3279..9811ed04669 100644
--- a/forge-gui/src/main/java/forge/card/CardSplitType.java
+++ b/forge-core/src/main/java/forge/card/CardSplitType.java
@@ -1,7 +1,5 @@
package forge.card;
-import forge.CardCharacteristicName;
-
public enum CardSplitType
{
None(AggregationMethod.USE_PRIMARY_FACE, null),
diff --git a/forge-gui/src/main/java/forge/card/CardSuperType.java b/forge-core/src/main/java/forge/card/CardSuperType.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/CardSuperType.java
rename to forge-core/src/main/java/forge/card/CardSuperType.java
diff --git a/forge-gui/src/main/java/forge/card/CardType.java b/forge-core/src/main/java/forge/card/CardType.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/CardType.java
rename to forge-core/src/main/java/forge/card/CardType.java
diff --git a/forge-gui/src/main/java/forge/card/ColorSet.java b/forge-core/src/main/java/forge/card/ColorSet.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/ColorSet.java
rename to forge-core/src/main/java/forge/card/ColorSet.java
diff --git a/forge-gui/src/main/java/forge/card/ICardCharacteristics.java b/forge-core/src/main/java/forge/card/ICardCharacteristics.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/ICardCharacteristics.java
rename to forge-core/src/main/java/forge/card/ICardCharacteristics.java
diff --git a/forge-gui/src/main/java/forge/card/ICardFace.java b/forge-core/src/main/java/forge/card/ICardFace.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/ICardFace.java
rename to forge-core/src/main/java/forge/card/ICardFace.java
diff --git a/forge-gui/src/main/java/forge/card/ICardRawAbilites.java b/forge-core/src/main/java/forge/card/ICardRawAbilites.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/ICardRawAbilites.java
rename to forge-core/src/main/java/forge/card/ICardRawAbilites.java
diff --git a/forge-gui/src/main/java/forge/card/MagicColor.java b/forge-core/src/main/java/forge/card/MagicColor.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/MagicColor.java
rename to forge-core/src/main/java/forge/card/MagicColor.java
diff --git a/forge-gui/src/main/java/forge/card/mana/IParserManaCost.java b/forge-core/src/main/java/forge/card/mana/IParserManaCost.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/mana/IParserManaCost.java
rename to forge-core/src/main/java/forge/card/mana/IParserManaCost.java
diff --git a/forge-gui/src/main/java/forge/card/mana/ManaAtom.java b/forge-core/src/main/java/forge/card/mana/ManaAtom.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/mana/ManaAtom.java
rename to forge-core/src/main/java/forge/card/mana/ManaAtom.java
diff --git a/forge-gui/src/main/java/forge/card/mana/ManaCost.java b/forge-core/src/main/java/forge/card/mana/ManaCost.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/mana/ManaCost.java
rename to forge-core/src/main/java/forge/card/mana/ManaCost.java
diff --git a/forge-gui/src/main/java/forge/card/mana/ManaCostParser.java b/forge-core/src/main/java/forge/card/mana/ManaCostParser.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/mana/ManaCostParser.java
rename to forge-core/src/main/java/forge/card/mana/ManaCostParser.java
diff --git a/forge-gui/src/main/java/forge/card/mana/ManaCostShard.java b/forge-core/src/main/java/forge/card/mana/ManaCostShard.java
similarity index 100%
rename from forge-gui/src/main/java/forge/card/mana/ManaCostShard.java
rename to forge-core/src/main/java/forge/card/mana/ManaCostShard.java
diff --git a/forge-core/src/main/java/forge/card/mana/package-info.java b/forge-core/src/main/java/forge/card/mana/package-info.java
new file mode 100644
index 00000000000..361ad2ab75a
--- /dev/null
+++ b/forge-core/src/main/java/forge/card/mana/package-info.java
@@ -0,0 +1,3 @@
+/** Forge Card Game. */
+package forge.card.mana;
+
diff --git a/forge-core/src/main/java/forge/package-info.java b/forge-core/src/main/java/forge/package-info.java
new file mode 100644
index 00000000000..f52d24110e3
--- /dev/null
+++ b/forge-core/src/main/java/forge/package-info.java
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+/**
+ * @author Max
+ *
+ */
+package forge;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/util/BinaryUtil.java b/forge-core/src/main/java/forge/util/BinaryUtil.java
similarity index 100%
rename from forge-gui/src/main/java/forge/util/BinaryUtil.java
rename to forge-core/src/main/java/forge/util/BinaryUtil.java
diff --git a/forge-core/src/main/java/forge/util/package-info.java b/forge-core/src/main/java/forge/util/package-info.java
new file mode 100644
index 00000000000..b9c9810076b
--- /dev/null
+++ b/forge-core/src/main/java/forge/util/package-info.java
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+/**
+ * @author Max
+ *
+ */
+package forge.util;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/Card.java b/forge-gui/src/main/java/forge/Card.java
index fafe971b525..77b29107602 100644
--- a/forge-gui/src/main/java/forge/Card.java
+++ b/forge-gui/src/main/java/forge/Card.java
@@ -42,6 +42,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import forge.CardPredicates.Presets;
+import forge.card.CardCharacteristicName;
import forge.card.CardCharacteristics;
import forge.card.CardDb;
import forge.card.CardEdition;
@@ -761,7 +762,7 @@ public class Card extends GameEntity implements Comparable {
* a {@link forge.card.trigger.Trigger} object.
*
* @param state
- * a {@link forge.CardCharacteristicName} object.
+ * a {@link forge.card.CardCharacteristicName} object.
*/
public final void removeTrigger(final Trigger t, final CardCharacteristicName state) {
CardCharacteristics stateCharacteristics = this.getState(state);
diff --git a/forge-gui/src/main/java/forge/CardUtil.java b/forge-gui/src/main/java/forge/CardUtil.java
index d8ad814163f..bc6586e41c1 100644
--- a/forge-gui/src/main/java/forge/CardUtil.java
+++ b/forge-gui/src/main/java/forge/CardUtil.java
@@ -22,6 +22,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import forge.card.CardCharacteristicName;
import forge.card.CardCharacteristics;
import forge.card.ColorSet;
import forge.card.MagicColor;
diff --git a/forge-gui/src/main/java/forge/card/ability/AbilityFactory.java b/forge-gui/src/main/java/forge/card/ability/AbilityFactory.java
index 94381dcb387..52b2aac2dfb 100644
--- a/forge-gui/src/main/java/forge/card/ability/AbilityFactory.java
+++ b/forge-gui/src/main/java/forge/card/ability/AbilityFactory.java
@@ -22,7 +22,7 @@ import java.util.List;
import java.util.Map;
import forge.Card;
-import forge.CardCharacteristicName;
+import forge.card.CardCharacteristicName;
import forge.card.cost.Cost;
import forge.card.spellability.AbilitySub;
import forge.card.spellability.SpellAbility;
diff --git a/forge-gui/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/forge-gui/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
index cca32131057..8f8499e4280 100644
--- a/forge-gui/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
+++ b/forge-gui/src/main/java/forge/card/ability/ai/ChangeZoneAi.java
@@ -12,13 +12,13 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
import forge.CardPredicates;
import forge.CardPredicates.Presets;
import forge.Constant;
import forge.GameEntity;
import forge.GameObject;
+import forge.card.CardCharacteristicName;
import forge.card.ability.AbilityUtils;
import forge.card.ability.ApiType;
import forge.card.ability.SpellAbilityAi;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java
index 4d67f78bd7c..6dc084cb344 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneAllEffect.java
@@ -5,9 +5,9 @@ import java.util.List;
import com.google.common.collect.Iterables;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
import forge.CardPredicates;
+import forge.card.CardCharacteristicName;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
index cae7d7f5e8d..82cf51e6dfa 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java
@@ -9,13 +9,13 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
import forge.CardPredicates;
import forge.CardUtil;
import forge.CounterType;
import forge.GameEntity;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.ability.ai.ChangeZoneAi;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/CloneEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/CloneEffect.java
index f582f4a6e02..5f97b8f73ef 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/CloneEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/CloneEffect.java
@@ -6,10 +6,10 @@ import java.util.List;
import java.util.Map;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardUtil;
import forge.Command;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.cardfactory.CardFactory;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java
index aa3668219e8..6117b7510cd 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java
@@ -12,10 +12,10 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
import forge.Command;
import forge.GameEntity;
+import forge.card.CardCharacteristicName;
import forge.card.CardDb;
import forge.card.CardRulesPredicates;
import forge.card.ability.AbilityUtils;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/DigEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/DigEffect.java
index a52f7d74b5e..bdc25734b57 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/DigEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/DigEffect.java
@@ -7,8 +7,8 @@ import java.util.List;
import java.util.Random;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
+import forge.card.CardCharacteristicName;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/MillEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/MillEffect.java
index 2713cb8631d..cb7443fcabd 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/MillEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/MillEffect.java
@@ -3,7 +3,7 @@ package forge.card.ability.effects;
import java.util.List;
import forge.Card;
-import forge.CardCharacteristicName;
+import forge.card.CardCharacteristicName;
import forge.card.ability.AbilityUtils;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/PlayEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/PlayEffect.java
index 7fd83862f9d..71ec72a429e 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/PlayEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/PlayEffect.java
@@ -11,7 +11,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.Card;
-import forge.CardCharacteristicName;
+import forge.card.CardCharacteristicName;
import forge.card.CardDb;
import forge.card.CardRulesPredicates;
import forge.card.ability.AbilityUtils;
diff --git a/forge-gui/src/main/java/forge/card/ability/effects/SetStateEffect.java b/forge-gui/src/main/java/forge/card/ability/effects/SetStateEffect.java
index a625c438c8d..c09d7b78e29 100644
--- a/forge-gui/src/main/java/forge/card/ability/effects/SetStateEffect.java
+++ b/forge-gui/src/main/java/forge/card/ability/effects/SetStateEffect.java
@@ -4,7 +4,7 @@ import java.util.Iterator;
import java.util.List;
import forge.Card;
-import forge.CardCharacteristicName;
+import forge.card.CardCharacteristicName;
import forge.card.ability.SpellAbilityEffect;
import forge.card.spellability.SpellAbility;
import forge.game.Game;
diff --git a/forge-gui/src/main/java/forge/card/cardfactory/CardFactory.java b/forge-gui/src/main/java/forge/card/cardfactory/CardFactory.java
index df7be878d6d..6cc225867b3 100644
--- a/forge-gui/src/main/java/forge/card/cardfactory/CardFactory.java
+++ b/forge-gui/src/main/java/forge/card/cardfactory/CardFactory.java
@@ -23,10 +23,10 @@ import java.util.List;
import java.util.Map.Entry;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardColor;
import forge.CardUtil;
import forge.ImageCache;
+import forge.card.CardCharacteristicName;
import forge.card.CardCharacteristics;
import forge.card.CardDb;
import forge.card.CardRules;
diff --git a/forge-gui/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/forge-gui/src/main/java/forge/card/cardfactory/CardFactoryUtil.java
index 3c1153aeb40..e3b42010b0b 100644
--- a/forge-gui/src/main/java/forge/card/cardfactory/CardFactoryUtil.java
+++ b/forge-gui/src/main/java/forge/card/cardfactory/CardFactoryUtil.java
@@ -26,7 +26,6 @@ import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
import forge.CardPredicates;
import forge.CardPredicates.Presets;
@@ -37,6 +36,7 @@ import forge.CounterType;
import forge.GameEntity;
import forge.GameLogEntryType;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.card.CardType;
import forge.card.ColorSet;
import forge.card.MagicColor;
diff --git a/forge-gui/src/main/java/forge/card/spellability/AbilityTriggered.java b/forge-gui/src/main/java/forge/card/spellability/AbilityTriggered.java
index f333a042ecc..a36caa571fb 100644
--- a/forge-gui/src/main/java/forge/card/spellability/AbilityTriggered.java
+++ b/forge-gui/src/main/java/forge/card/spellability/AbilityTriggered.java
@@ -20,8 +20,8 @@ package forge.card.spellability;
import java.util.Arrays;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.Command;
+import forge.card.CardCharacteristicName;
import forge.card.CardCharacteristics;
import forge.card.mana.ManaCost;
import forge.card.trigger.ZCTrigger;
diff --git a/forge-gui/src/main/java/forge/game/GameAction.java b/forge-gui/src/main/java/forge/game/GameAction.java
index 5c7fc953c67..60fd871e89e 100644
--- a/forge-gui/src/main/java/forge/game/GameAction.java
+++ b/forge-gui/src/main/java/forge/game/GameAction.java
@@ -34,7 +34,6 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
import forge.CardPredicates;
import forge.CardUtil;
@@ -44,6 +43,7 @@ import forge.FThreads;
import forge.GameEntity;
import forge.GameLogEntryType;
import forge.GameObject;
+import forge.card.CardCharacteristicName;
import forge.card.CardDb;
import forge.card.CardType;
import forge.card.TriggerReplacementBase;
diff --git a/forge-gui/src/main/java/forge/gui/CardDetailPanel.java b/forge-gui/src/main/java/forge/gui/CardDetailPanel.java
index f8972b402ad..178d7c2e8b7 100644
--- a/forge-gui/src/main/java/forge/gui/CardDetailPanel.java
+++ b/forge-gui/src/main/java/forge/gui/CardDetailPanel.java
@@ -38,11 +38,11 @@ import javax.swing.border.EtchedBorder;
import org.apache.commons.lang3.StringUtils;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardUtil;
import forge.CounterType;
import forge.GameEntity;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.card.CardEdition;
import forge.card.CardType;
import forge.card.ColorSet;
diff --git a/forge-gui/src/main/java/forge/gui/CardPicturePanel.java b/forge-gui/src/main/java/forge/gui/CardPicturePanel.java
index 26589a1fa60..48bc07495ab 100644
--- a/forge-gui/src/main/java/forge/gui/CardPicturePanel.java
+++ b/forge-gui/src/main/java/forge/gui/CardPicturePanel.java
@@ -24,9 +24,9 @@ import java.awt.image.BufferedImage;
import javax.swing.JPanel;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.ImageCache;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.gui.toolbox.FSkin;
import forge.gui.toolbox.FSkin.JComponentSkin;
import forge.gui.toolbox.imaging.FImagePanel;
diff --git a/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java b/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java
index 913b9acc21a..dfb5d0cb5bb 100644
--- a/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java
+++ b/forge-gui/src/main/java/forge/gui/GuiDisplayUtil.java
@@ -37,11 +37,11 @@ import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardLists;
import forge.CardPredicates;
import forge.CounterType;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.card.CardDb;
import forge.card.spellability.AbilityManaPart;
import forge.card.spellability.SpellAbility;
diff --git a/forge-gui/src/main/java/forge/gui/match/controllers/CPicture.java b/forge-gui/src/main/java/forge/gui/match/controllers/CPicture.java
index bcada6a2524..5c3594edd78 100644
--- a/forge-gui/src/main/java/forge/gui/match/controllers/CPicture.java
+++ b/forge-gui/src/main/java/forge/gui/match/controllers/CPicture.java
@@ -24,9 +24,9 @@ import java.awt.event.MouseWheelListener;
import javax.swing.JLabel;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardUtil;
import forge.Command;
+import forge.card.CardCharacteristicName;
import forge.gui.CardPicturePanel;
import forge.gui.framework.ICDoc;
import forge.gui.match.views.VPicture;
diff --git a/forge-gui/src/main/java/forge/gui/match/nonsingleton/ZoneAction.java b/forge-gui/src/main/java/forge/gui/match/nonsingleton/ZoneAction.java
index 53de03a90a0..e8ad58e75dc 100644
--- a/forge-gui/src/main/java/forge/gui/match/nonsingleton/ZoneAction.java
+++ b/forge-gui/src/main/java/forge/gui/match/nonsingleton/ZoneAction.java
@@ -5,8 +5,8 @@ import java.util.ArrayList;
import java.util.List;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.card.cardfactory.CardFactory;
import forge.game.zone.PlayerZone;
import forge.gui.ForgeAction;
diff --git a/forge-gui/src/main/java/forge/gui/toolbox/imaging/FImageUtil.java b/forge-gui/src/main/java/forge/gui/toolbox/imaging/FImageUtil.java
index 250d7f20747..a54355b3c1a 100644
--- a/forge-gui/src/main/java/forge/gui/toolbox/imaging/FImageUtil.java
+++ b/forge-gui/src/main/java/forge/gui/toolbox/imaging/FImageUtil.java
@@ -22,8 +22,8 @@ import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.ImageCache;
+import forge.card.CardCharacteristicName;
import forge.gui.toolbox.CardFaceSymbols;
import forge.gui.toolbox.FSkin.ComponentSkin;
diff --git a/forge-gui/src/main/java/forge/gui/toolbox/special/CardZoomer.java b/forge-gui/src/main/java/forge/gui/toolbox/special/CardZoomer.java
index 24d43417ab7..b05b23d6842 100644
--- a/forge-gui/src/main/java/forge/gui/toolbox/special/CardZoomer.java
+++ b/forge-gui/src/main/java/forge/gui/toolbox/special/CardZoomer.java
@@ -32,8 +32,8 @@ import javax.swing.Timer;
import net.miginfocom.swing.MigLayout;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CardUtil;
+import forge.card.CardCharacteristicName;
import forge.gui.SOverlayUtils;
import forge.gui.toolbox.FOverlay;
import forge.gui.toolbox.FSkin;
diff --git a/forge-gui/src/main/java/forge/view/arcane/CardPanel.java b/forge-gui/src/main/java/forge/view/arcane/CardPanel.java
index c02fc602021..765d7741afa 100644
--- a/forge-gui/src/main/java/forge/view/arcane/CardPanel.java
+++ b/forge-gui/src/main/java/forge/view/arcane/CardPanel.java
@@ -36,10 +36,10 @@ import javax.swing.JRootPane;
import javax.swing.SwingUtilities;
import forge.Card;
-import forge.CardCharacteristicName;
import forge.CounterType;
import forge.ImageCache;
import forge.Singletons;
+import forge.card.CardCharacteristicName;
import forge.card.CardEdition;
import forge.card.mana.ManaCost;
import forge.game.combat.Combat;