diff --git a/pom.xml b/pom.xml
index 11d70363fe0253a387bc3be3956d30b8ca6336a9..9e05740302e117bb5a1b3dfd0d65c8e5290bb825 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,12 +53,12 @@
         <dependency>
             <groupId>org.mapdb</groupId>
             <artifactId>mapdb</artifactId>
-            <version>1.0.6</version>
+            <version>1.0.9</version>
         </dependency>
         <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
-            <version>2.2.4</version>
+            <version>2.8.0</version>
         </dependency>
         <dependency>
             <groupId>org.ow2.sirocco</groupId>
diff --git a/src/main/java/com/comandante/creeper/Main.java b/src/main/java/com/comandante/creeper/Main.java
index 2a763abbdb0f1a7c00322edf5a703dceeb761e27..62746b7d4d98d4da8f230ccd98f85a55afc8f922 100644
--- a/src/main/java/com/comandante/creeper/Main.java
+++ b/src/main/java/com/comandante/creeper/Main.java
@@ -19,6 +19,8 @@ import com.comandante.creeper.storage.WorldStorage;
 import com.comandante.creeper.world.MapsManager;
 import com.comandante.creeper.world.RoomManager;
 import com.google.common.io.Files;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.configuration.*;
 import org.apache.log4j.Logger;
@@ -79,7 +81,11 @@ public class Main {
 
         Files.isDirectory().apply(new File("world/"));
 
-        DB db = DBMaker.newFileDB(new File("world/" + creeperConfiguration.databaseFileName)).closeOnJvmShutdown().make();
+        DB db = DBMaker.newFileDB(new File("world/" + creeperConfiguration.databaseFileName))
+                .closeOnJvmShutdown()
+                .make();
+
+        Gson gson = new GsonBuilder().create();
 
         PlayerManager playerManager = new PlayerManager(db, new SessionManager());
         playerManager.createAllGauges();
diff --git a/src/main/java/com/comandante/creeper/entity/EntityManager.java b/src/main/java/com/comandante/creeper/entity/EntityManager.java
index b7d88a3a48d0f4427cae967ca0108891b3b51f2a..dece67f944eb2f60b90ea8dea739f955b6217e55 100644
--- a/src/main/java/com/comandante/creeper/entity/EntityManager.java
+++ b/src/main/java/com/comandante/creeper/entity/EntityManager.java
@@ -11,6 +11,7 @@ import com.comandante.creeper.player.Player;
 import com.comandante.creeper.player.PlayerManager;
 import com.comandante.creeper.world.RoomManager;
 import com.comandante.creeper.world.model.Room;
+import com.google.gson.Gson;
 import org.apache.log4j.Logger;
 import org.mapdb.DB;
 import org.mapdb.HTreeMap;
diff --git a/src/main/java/com/comandante/creeper/items/EffectSerializer.java b/src/main/java/com/comandante/creeper/items/EffectSerializer.java
index 16f7e9e54ed5e94d35b5878f3eef84142705f6f5..b4ce934cba75c9e9ca117783fd8868f0c4a74828 100644
--- a/src/main/java/com/comandante/creeper/items/EffectSerializer.java
+++ b/src/main/java/com/comandante/creeper/items/EffectSerializer.java
@@ -1,5 +1,6 @@
 package com.comandante.creeper.items;
 
+import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import org.mapdb.Serializer;
 
@@ -9,14 +10,17 @@ import java.io.IOException;
 import java.io.Serializable;
 
 public class EffectSerializer implements Serializer<Effect>, Serializable {
+
+    private final static Gson GSON = new GsonBuilder().create();
+
     @Override
     public void serialize(DataOutput out, Effect value) throws IOException {
-        out.writeUTF(new GsonBuilder().create().toJson(value, Effect.class));
+        out.writeUTF(GSON.toJson(value, Effect.class));
     }
 
     @Override
     public Effect deserialize(DataInput in, int available) throws IOException {
-        return new GsonBuilder().create().fromJson(in.readUTF(), Effect.class);
+        return GSON.fromJson(in.readUTF(), Effect.class);
     }
 
     @Override
diff --git a/src/main/java/com/comandante/creeper/items/ItemSerializer.java b/src/main/java/com/comandante/creeper/items/ItemSerializer.java
index 4ef367d4441302b09008aed68e3c9fd0810237c3..7b911ff024ffa1892deee167aabd0668651abbd9 100644
--- a/src/main/java/com/comandante/creeper/items/ItemSerializer.java
+++ b/src/main/java/com/comandante/creeper/items/ItemSerializer.java
@@ -1,5 +1,6 @@
 package com.comandante.creeper.items;
 
+import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import org.mapdb.Serializer;
 
@@ -9,14 +10,17 @@ import java.io.IOException;
 import java.io.Serializable;
 
 public class ItemSerializer implements Serializer<Item>, Serializable {
+
+    private final static Gson GSON = new GsonBuilder().create();
+
     @Override
     public void serialize(DataOutput out, Item value) throws IOException {
-        out.writeUTF(new GsonBuilder().create().toJson(value, Item.class));
+        out.writeUTF(GSON.toJson(value, Item.class));
     }
 
     @Override
     public Item deserialize(DataInput in, int available) throws IOException {
-        return new GsonBuilder().create().fromJson(in.readUTF(), Item.class);
+        return GSON.fromJson(in.readUTF(), Item.class);
     }
 
     @Override
diff --git a/src/main/java/com/comandante/creeper/player/PlayerManager.java b/src/main/java/com/comandante/creeper/player/PlayerManager.java
index fe56f01d522c36488ca534b19cd1c648d166a8c0..c00297e9a08378d0256d18031e010b6c8cda2e6e 100644
--- a/src/main/java/com/comandante/creeper/player/PlayerManager.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerManager.java
@@ -6,6 +6,7 @@ import com.comandante.creeper.Main;
 import com.comandante.creeper.core_game.SessionManager;
 import com.comandante.creeper.storage.MapDbAutoCommitService;
 import com.comandante.creeper.world.model.Room;
+import com.google.gson.Gson;
 import org.apache.commons.codec.binary.Base64;
 import org.mapdb.DB;
 import org.mapdb.HTreeMap;
@@ -30,7 +31,10 @@ public class PlayerManager {
         if (db.exists("playerMetadata")) {
             this.playerMetadataStore = db.get("playerMetadata");
         } else {
-            this.playerMetadataStore = db.createHashMap("playerMetadata").valueSerializer(new PlayerMetadataSerializer()).make();
+            this.playerMetadataStore = db
+                    .createHashMap("playerMetadata")
+                    .valueSerializer(new PlayerMetadataSerializer())
+                    .make();
         }
         MapDbAutoCommitService mapDbAutoCommitService = new MapDbAutoCommitService(db);
         mapDbAutoCommitService.startAsync();
diff --git a/src/main/java/com/comandante/creeper/player/PlayerMetadataSerializer.java b/src/main/java/com/comandante/creeper/player/PlayerMetadataSerializer.java
index 17691677b890e0d1daf69f74791699f61cd88ffe..fdc2f58f5c81b3cbc0f2020fc266af21b70e3d75 100644
--- a/src/main/java/com/comandante/creeper/player/PlayerMetadataSerializer.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerMetadataSerializer.java
@@ -1,5 +1,6 @@
 package com.comandante.creeper.player;
 
+import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import org.mapdb.Serializer;
 
@@ -10,14 +11,16 @@ import java.io.Serializable;
 
 public class PlayerMetadataSerializer implements Serializer<PlayerMetadata>, Serializable {
 
+    private final static Gson GSON = new GsonBuilder().create();
+
     @Override
     public void serialize(DataOutput out, PlayerMetadata value) throws IOException {
-        out.writeUTF(new GsonBuilder().create().toJson(value, PlayerMetadata.class));
+        out.writeUTF(GSON.toJson(value, PlayerMetadata.class));
     }
 
     @Override
     public PlayerMetadata deserialize(DataInput in, int available) throws IOException {
-        return new GsonBuilder().create().fromJson(in.readUTF(), PlayerMetadata.class);
+        return GSON.fromJson(in.readUTF(), PlayerMetadata.class);
     }
 
     @Override
diff --git a/src/test/com/comandante/creeper/player/PlayerManagerTest.java b/src/test/com/comandante/creeper/player/PlayerManagerTest.java
index 4b6d0f1792df95729296d59dc0bde6b30eb54b4d..b3daba5e26918c7b2791d87cb7bd389049e96209 100644
--- a/src/test/com/comandante/creeper/player/PlayerManagerTest.java
+++ b/src/test/com/comandante/creeper/player/PlayerManagerTest.java
@@ -3,6 +3,8 @@ package com.comandante.creeper.player;
 import com.comandante.creeper.core_game.SessionManager;
 import com.comandante.creeper.world.model.Room;
 import com.google.common.collect.Sets;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/src/test/com/comandante/creeper/player/combat_simuation/NpcTestHarness.java b/src/test/com/comandante/creeper/player/combat_simuation/NpcTestHarness.java
index 1287198ed7d7a9730390d1bb2c18f39ac23c613e..31b66a18c4bcdc26a8f77761aba4a320ecb4da64 100644
--- a/src/test/com/comandante/creeper/player/combat_simuation/NpcTestHarness.java
+++ b/src/test/com/comandante/creeper/player/combat_simuation/NpcTestHarness.java
@@ -22,6 +22,8 @@ import com.comandante.creeper.world.MapsManager;
 import com.comandante.creeper.world.RoomManager;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
 import org.apache.commons.configuration.MapConfiguration;
 import org.jboss.netty.channel.Channel;
 import org.junit.Assert;
@@ -301,6 +303,7 @@ public class NpcTestHarness {
         };
         CreeperConfiguration creeperConfiguration = new CreeperConfiguration(new MapConfiguration(Maps.newHashMap()));
         DB db = DBMaker.newMemoryDB().closeOnJvmShutdown().make();
+        Gson gson = new GsonBuilder().create();
         PlayerManager playerManager = new PlayerManager(db, new SessionManager());
         RoomManager roomManager = new RoomManager(playerManager);
         MapsManager mapsManager = new MapsManager(creeperConfiguration, roomManager);