diff --git a/.gitignore b/.gitignore
index 99412a2a..6fa8deb6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,31 @@
-# Eclipse stuff
+# Eclipse
/.classpath
/.project
/.settings
+/*.jardesc
+
+# IntelliJ
+*.iml
+*.ipr
+*.iws
+.idea/
# NetBeans
/nbproject
-/build.xml
# vim
.*.sw[a-p]
+# Maven
+/build.xml
+/target
+/dependency-reduced-pom.xml
+
# various other potential build files
/build
/bin
/dist
-/*.jardesc
+/manifest.mf
# Mac filesystem dust
-.DS_Store
\ No newline at end of file
+.DS_Store
diff --git a/lib/Herochat.jar b/lib/HeroChat-5.6.7.jar
similarity index 78%
rename from lib/Herochat.jar
rename to lib/HeroChat-5.6.7.jar
index c7720326..eaf0abd1 100644
Binary files a/lib/Herochat.jar and b/lib/HeroChat-5.6.7.jar differ
diff --git a/lib/LWC-4.4.0.jar b/lib/LWC-4.4.0.jar
new file mode 100644
index 00000000..ada1677f
Binary files /dev/null and b/lib/LWC-4.4.0.jar differ
diff --git a/lib/LWC.jar b/lib/LWC.jar
deleted file mode 100644
index 2cfd17c8..00000000
Binary files a/lib/LWC.jar and /dev/null differ
diff --git a/lib/Vault.jar b/lib/Vault.jar
deleted file mode 100644
index 4a452b0f..00000000
Binary files a/lib/Vault.jar and /dev/null differ
diff --git a/media/Thumbs.db b/media/Thumbs.db
new file mode 100644
index 00000000..7d9e784d
Binary files /dev/null and b/media/Thumbs.db differ
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..86d7c5ed
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,82 @@
+
+ 4.0.0
+
+ Factions
+ http://www.massivecraft.com/factions
+
+ com.massivecraft
+ Factions
+ 2.6.1
+
+
+ UTF-8
+
+
+
+ clean install
+ Factions
+ ${basedir}/src/main/java/
+
+
+ .
+ ${basedir}/src/main/resources/
+ true
+
+ *.yml
+ *.md
+ *.txt
+
+
+
+
+
+ maven-compiler-plugin
+ 3.1
+
+
+ 1.7
+
+
+
+
+
+
+
+ com.massivecraft
+ MassiveCore
+ LATEST
+
+
+ us.dynmap
+ dynmap-api
+ 2.0.0-SNAPSHOT
+
+
+ us.dynmap
+ DynmapCore
+ 2.0.0-SNAPSHOT
+
+
+ org.dthielke
+ HeroChat
+ 5.6.7
+ system
+ ${project.basedir}/lib/HeroChat-5.6.7.jar
+
+
+ com.griefcraft
+ LWC
+ 4.4.0
+ system
+ ${project.basedir}/lib/LWC-4.4.0.jar
+
+
+
+
+
+ dynmap-repo
+ http://repo.mikeprimm.com/
+
+
+
+
diff --git a/src/com/massivecraft/factions/Const.java b/src/main/java/com/massivecraft/factions/Const.java
similarity index 100%
rename from src/com/massivecraft/factions/Const.java
rename to src/main/java/com/massivecraft/factions/Const.java
diff --git a/src/com/massivecraft/factions/EconomyParticipator.java b/src/main/java/com/massivecraft/factions/EconomyParticipator.java
similarity index 100%
rename from src/com/massivecraft/factions/EconomyParticipator.java
rename to src/main/java/com/massivecraft/factions/EconomyParticipator.java
diff --git a/src/com/massivecraft/factions/EngineIdUpdate.java b/src/main/java/com/massivecraft/factions/EngineIdUpdate.java
similarity index 100%
rename from src/com/massivecraft/factions/EngineIdUpdate.java
rename to src/main/java/com/massivecraft/factions/EngineIdUpdate.java
diff --git a/src/com/massivecraft/factions/ExtractorFactionAccountId.java b/src/main/java/com/massivecraft/factions/ExtractorFactionAccountId.java
similarity index 100%
rename from src/com/massivecraft/factions/ExtractorFactionAccountId.java
rename to src/main/java/com/massivecraft/factions/ExtractorFactionAccountId.java
diff --git a/src/com/massivecraft/factions/FFlag.java b/src/main/java/com/massivecraft/factions/FFlag.java
similarity index 100%
rename from src/com/massivecraft/factions/FFlag.java
rename to src/main/java/com/massivecraft/factions/FFlag.java
diff --git a/src/com/massivecraft/factions/FPerm.java b/src/main/java/com/massivecraft/factions/FPerm.java
similarity index 100%
rename from src/com/massivecraft/factions/FPerm.java
rename to src/main/java/com/massivecraft/factions/FPerm.java
diff --git a/src/com/massivecraft/factions/FactionEqualsPredictate.java b/src/main/java/com/massivecraft/factions/FactionEqualsPredictate.java
similarity index 100%
rename from src/com/massivecraft/factions/FactionEqualsPredictate.java
rename to src/main/java/com/massivecraft/factions/FactionEqualsPredictate.java
diff --git a/src/com/massivecraft/factions/FactionListComparator.java b/src/main/java/com/massivecraft/factions/FactionListComparator.java
similarity index 100%
rename from src/com/massivecraft/factions/FactionListComparator.java
rename to src/main/java/com/massivecraft/factions/FactionListComparator.java
diff --git a/src/com/massivecraft/factions/Factions.java b/src/main/java/com/massivecraft/factions/Factions.java
similarity index 98%
rename from src/com/massivecraft/factions/Factions.java
rename to src/main/java/com/massivecraft/factions/Factions.java
index 1220235c..848c27bc 100644
--- a/src/com/massivecraft/factions/Factions.java
+++ b/src/main/java/com/massivecraft/factions/Factions.java
@@ -47,8 +47,8 @@ import com.massivecraft.massivecore.AspectColl;
import com.massivecraft.massivecore.MassivePlugin;
import com.massivecraft.massivecore.Multiverse;
import com.massivecraft.massivecore.util.MUtil;
-import com.massivecraft.massivecore.xlib.gson.Gson;
-import com.massivecraft.massivecore.xlib.gson.GsonBuilder;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
public class Factions extends MassivePlugin
diff --git a/src/com/massivecraft/factions/Lang.java b/src/main/java/com/massivecraft/factions/Lang.java
similarity index 100%
rename from src/com/massivecraft/factions/Lang.java
rename to src/main/java/com/massivecraft/factions/Lang.java
diff --git a/src/com/massivecraft/factions/Perm.java b/src/main/java/com/massivecraft/factions/Perm.java
similarity index 100%
rename from src/com/massivecraft/factions/Perm.java
rename to src/main/java/com/massivecraft/factions/Perm.java
diff --git a/src/com/massivecraft/factions/PlayerRoleComparator.java b/src/main/java/com/massivecraft/factions/PlayerRoleComparator.java
similarity index 100%
rename from src/com/massivecraft/factions/PlayerRoleComparator.java
rename to src/main/java/com/massivecraft/factions/PlayerRoleComparator.java
diff --git a/src/com/massivecraft/factions/Rel.java b/src/main/java/com/massivecraft/factions/Rel.java
similarity index 100%
rename from src/com/massivecraft/factions/Rel.java
rename to src/main/java/com/massivecraft/factions/Rel.java
diff --git a/src/com/massivecraft/factions/RelationParticipator.java b/src/main/java/com/massivecraft/factions/RelationParticipator.java
similarity index 100%
rename from src/com/massivecraft/factions/RelationParticipator.java
rename to src/main/java/com/massivecraft/factions/RelationParticipator.java
diff --git a/src/com/massivecraft/factions/TerritoryAccess.java b/src/main/java/com/massivecraft/factions/TerritoryAccess.java
similarity index 100%
rename from src/com/massivecraft/factions/TerritoryAccess.java
rename to src/main/java/com/massivecraft/factions/TerritoryAccess.java
diff --git a/src/com/massivecraft/factions/adapter/BoardAdapter.java b/src/main/java/com/massivecraft/factions/adapter/BoardAdapter.java
similarity index 73%
rename from src/com/massivecraft/factions/adapter/BoardAdapter.java
rename to src/main/java/com/massivecraft/factions/adapter/BoardAdapter.java
index b2b060a3..ebbdd114 100644
--- a/src/com/massivecraft/factions/adapter/BoardAdapter.java
+++ b/src/main/java/com/massivecraft/factions/adapter/BoardAdapter.java
@@ -4,12 +4,12 @@ import java.lang.reflect.Type;
import java.util.Map;
import com.massivecraft.massivecore.ps.PS;
-import com.massivecraft.massivecore.xlib.gson.JsonDeserializationContext;
-import com.massivecraft.massivecore.xlib.gson.JsonDeserializer;
-import com.massivecraft.massivecore.xlib.gson.JsonElement;
-import com.massivecraft.massivecore.xlib.gson.JsonParseException;
-import com.massivecraft.massivecore.xlib.gson.JsonSerializationContext;
-import com.massivecraft.massivecore.xlib.gson.JsonSerializer;
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
import com.massivecraft.factions.TerritoryAccess;
import com.massivecraft.factions.entity.Board;
diff --git a/src/com/massivecraft/factions/adapter/BoardMapAdapter.java b/src/main/java/com/massivecraft/factions/adapter/BoardMapAdapter.java
similarity index 81%
rename from src/com/massivecraft/factions/adapter/BoardMapAdapter.java
rename to src/main/java/com/massivecraft/factions/adapter/BoardMapAdapter.java
index e724cc7b..8bc76952 100644
--- a/src/com/massivecraft/factions/adapter/BoardMapAdapter.java
+++ b/src/main/java/com/massivecraft/factions/adapter/BoardMapAdapter.java
@@ -6,13 +6,13 @@ import java.util.Map.Entry;
import java.util.concurrent.ConcurrentSkipListMap;
import com.massivecraft.massivecore.ps.PS;
-import com.massivecraft.massivecore.xlib.gson.JsonDeserializationContext;
-import com.massivecraft.massivecore.xlib.gson.JsonDeserializer;
-import com.massivecraft.massivecore.xlib.gson.JsonElement;
-import com.massivecraft.massivecore.xlib.gson.JsonObject;
-import com.massivecraft.massivecore.xlib.gson.JsonParseException;
-import com.massivecraft.massivecore.xlib.gson.JsonSerializationContext;
-import com.massivecraft.massivecore.xlib.gson.JsonSerializer;
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
import com.massivecraft.factions.TerritoryAccess;
public class BoardMapAdapter implements JsonDeserializer