diff --git a/src/main/java/com/comandante/creeper/command/Command.java b/src/main/java/com/comandante/creeper/command/Command.java
index 1a0af609af5d2cad87867c12db080189671b787b..4d75b303fe3ff1b25a04ade81e8384187823e578 100644
--- a/src/main/java/com/comandante/creeper/command/Command.java
+++ b/src/main/java/com/comandante/creeper/command/Command.java
@@ -8,12 +8,14 @@ import com.comandante.creeper.player.Player;
 import com.comandante.creeper.player.PlayerManager;
 import com.comandante.creeper.player.PlayerRole;
 import com.comandante.creeper.server.ChannelCommunicationUtils;
-import com.comandante.creeper.server.ChannelUtils;
 import com.comandante.creeper.server.CreeperSession;
 import com.comandante.creeper.world.*;
 import com.google.common.collect.Sets;
 import org.apache.log4j.Logger;
-import org.jboss.netty.channel.*;
+import org.jboss.netty.channel.Channel;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.MessageEvent;
+import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
diff --git a/src/main/java/com/comandante/creeper/command/admin/BuildCommand.java b/src/main/java/com/comandante/creeper/command/admin/BuildCommand.java
index ea089cfb97148b2c4f7116c7c638ed6bc055e389..5e58bb83ba9e79c631a67d72fe27ca7da838dec4 100644
--- a/src/main/java/com/comandante/creeper/command/admin/BuildCommand.java
+++ b/src/main/java/com/comandante/creeper/command/admin/BuildCommand.java
@@ -76,7 +76,7 @@ public class BuildCommand extends Command {
                         BasicRoom basicRoom = newBasic()
                                 .setRoomId(newRoomId)
                                 .setFloorId(newFloorId)
-                                .setDownId(Optional.of(currentRoom.getRoomId()))
+                                .setDownId(java.util.Optional.of(currentRoom.getRoomId()))
                                 .createBasicRoom();
                         currentRoom.setUpId(Optional.of(newRoomId));
                         entityManager.addEntity(basicRoom);
@@ -99,7 +99,7 @@ public class BuildCommand extends Command {
                         BasicRoom basicRoom = newBasic()
                                 .setRoomId(newRoomId)
                                 .setFloorId(newFloorId)
-                                .setUpId(Optional.of(currentRoom.getRoomId()))
+                                .setUpId(java.util.Optional.of(currentRoom.getRoomId()))
                                 .createBasicRoom();
                         currentRoom.setDownId(Optional.of(newRoomId));
                         entityManager.addEntity(basicRoom);
diff --git a/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java b/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
index 5e9e3d2ac985cafe2cef852247509c925935c8ca..6185df31b41adab3313e69792232dfaffa3856a4 100644
--- a/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
+++ b/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
@@ -46,7 +46,7 @@ public class NewUserRegistrationManager {
             newUserRegistrationFlow(session, e);
             return false;
         }
-        session.setUsername(Optional.of(username));
+        session.setUsername(java.util.Optional.of(username));
         return true;
     }
 
diff --git a/src/main/java/com/comandante/creeper/merchant/bank/commands/BankCommand.java b/src/main/java/com/comandante/creeper/merchant/bank/commands/BankCommand.java
index ab154cc4a223ea81c2726b03f685e46c024f1be9..2b15253c5d45eaddff9014eaec7a555219182425 100644
--- a/src/main/java/com/comandante/creeper/merchant/bank/commands/BankCommand.java
+++ b/src/main/java/com/comandante/creeper/merchant/bank/commands/BankCommand.java
@@ -5,7 +5,6 @@ import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.player.Player;
 import com.comandante.creeper.player.PlayerManager;
 import com.comandante.creeper.server.ChannelCommunicationUtils;
-import com.comandante.creeper.server.ChannelUtils;
 import com.comandante.creeper.server.Color;
 import com.comandante.creeper.server.CreeperSession;
 import com.comandante.creeper.world.Room;
diff --git a/src/main/java/com/comandante/creeper/merchant/lockers/LockerCommand.java b/src/main/java/com/comandante/creeper/merchant/lockers/LockerCommand.java
index aa35dbc455b32a388169b2ad9f0813079aaa05ee..7088cc9bad164aaa37f1ed6158f394456a74c357 100644
--- a/src/main/java/com/comandante/creeper/merchant/lockers/LockerCommand.java
+++ b/src/main/java/com/comandante/creeper/merchant/lockers/LockerCommand.java
@@ -5,7 +5,6 @@ import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.player.Player;
 import com.comandante.creeper.player.PlayerManager;
 import com.comandante.creeper.server.ChannelCommunicationUtils;
-import com.comandante.creeper.server.ChannelUtils;
 import com.comandante.creeper.server.Color;
 import com.comandante.creeper.server.CreeperSession;
 import com.comandante.creeper.world.Room;
diff --git a/src/main/java/com/comandante/creeper/server/CreeperAuthenticationHandler.java b/src/main/java/com/comandante/creeper/server/CreeperAuthenticationHandler.java
index 1a994c726e57d7d15e1c8ccacd70b0c852bb51d6..1a6624a5299cf806b33b87f3433432db53bef276 100644
--- a/src/main/java/com/comandante/creeper/server/CreeperAuthenticationHandler.java
+++ b/src/main/java/com/comandante/creeper/server/CreeperAuthenticationHandler.java
@@ -105,7 +105,7 @@ public class CreeperAuthenticationHandler extends SimpleChannelUpstreamHandler {
         String message = (String) e.getMessage();
         CreeperSession creeperSession = (CreeperSession) ctx.getAttachment();
         if (creeperSession.getState().equals(CreeperSession.State.promptedForUsername)) {
-            creeperSession.setUsername(Optional.of(message.replaceAll("[^a-zA-Z0-9]", "")));
+            creeperSession.setUsername(java.util.Optional.of(message.replaceAll("[^a-zA-Z0-9]", "")));
             if (creeperSession.getUsername().isPresent() && creeperSession.getUsername().get().equals("tupac")) {
                 gameManager.getNewUserRegistrationManager().newUserRegistrationFlow(creeperSession, e);
                 return;
diff --git a/src/main/java/com/comandante/creeper/server/CreeperSession.java b/src/main/java/com/comandante/creeper/server/CreeperSession.java
index a653149ab4cf94f5d395f30ef0818e43acb9ff08..b50e1323869494a2298ea71d4bc3ccb831e0bf89 100644
--- a/src/main/java/com/comandante/creeper/server/CreeperSession.java
+++ b/src/main/java/com/comandante/creeper/server/CreeperSession.java
@@ -11,7 +11,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 public class CreeperSession {
 
-    private Optional<String> username = Optional.absent();
+    private java.util.Optional<String> username = java.util.Optional.empty();
     private Optional<String> password = Optional.absent();
     private boolean isAuthed = false;
     private AtomicBoolean isAbleToDoAbility = new AtomicBoolean(false);
@@ -46,11 +46,11 @@ public class CreeperSession {
         this.lastMessage = lastMessage;
     }
 
-    public Optional<String> getUsername() {
+    public java.util.Optional<String> getUsername() {
         return username;
     }
 
-    public void setUsername(Optional<String> username) {
+    public void setUsername(java.util.Optional<String> username) {
         this.username = username;
     }
 
diff --git a/src/main/java/com/comandante/creeper/world/BasicRoomBuilder.java b/src/main/java/com/comandante/creeper/world/BasicRoomBuilder.java
index fb3d5685752927839d4fd0d71d831d1e2d5c8f32..d6483170627bf72becd9041a59de309f1dc8e4a8 100644
--- a/src/main/java/com/comandante/creeper/world/BasicRoomBuilder.java
+++ b/src/main/java/com/comandante/creeper/world/BasicRoomBuilder.java
@@ -1,25 +1,25 @@
 package com.comandante.creeper.world;
 
 import com.comandante.creeper.managers.GameManager;
-import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 
 public class BasicRoomBuilder {
     private Integer roomId;
     private String roomTitle;
     private Integer floorId;
-    private Optional<Integer> northId = Optional.absent();
-    private Optional<Integer> southId = Optional.absent();
-    private Optional<Integer> eastId = Optional.absent();
-    private Optional<Integer> westId = Optional.absent();
-    private Optional<Integer> upId = Optional.absent();
-    private Optional<Integer> downId = Optional.absent();
+    private Optional<Integer> northId = Optional.empty();
+    private Optional<Integer> southId = Optional.empty();
+    private Optional<Integer> eastId = Optional.empty();
+    private Optional<Integer> westId = Optional.empty();
+    private Optional<Integer> upId = Optional.empty();
+    private Optional<Integer> downId = Optional.empty();
     private List<RemoteExit> enterExits = Lists.newArrayList();
     private String roomDescription;
     private Set<String> roomTags = Sets.newConcurrentHashSet();
diff --git a/src/main/java/com/comandante/creeper/world/WorldExporter.java b/src/main/java/com/comandante/creeper/world/WorldExporter.java
index eaafcb87194def4322f722ece9348166eae00c37..0205f2f3b7a9a648de793bf6cc6b3014752d8077 100644
--- a/src/main/java/com/comandante/creeper/world/WorldExporter.java
+++ b/src/main/java/com/comandante/creeper/world/WorldExporter.java
@@ -4,7 +4,6 @@ import com.comandante.creeper.entity.EntityManager;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.managers.SentryManager;
 import com.google.common.base.Function;
-import com.google.common.base.Optional;
 import com.google.common.collect.Iterators;
 import com.google.common.collect.Sets;
 import com.google.common.io.Files;
@@ -68,69 +67,59 @@ public class WorldExporter {
     }
 
     public static Function<Room, RoomModel> buildRoomModelsFromRooms() {
-        return new Function<Room, RoomModel>() {
-            @Override
-            public RoomModel apply(Room room) {
-                RoomModelBuilder roomModelBuilder = new RoomModelBuilder();
-                for (RemoteExit remoteExit : room.getEnterExits()) {
-                    roomModelBuilder.addEnterExitName(remoteExit.getRoomId(), remoteExit.getExitDetail());
-                }
-                roomModelBuilder.setRoomDescription(room.getRoomDescription());
-                roomModelBuilder.setRoomTitle(room.getRoomTitle());
-                roomModelBuilder.setRoomId(room.getRoomId());
-                roomModelBuilder.setRoomTags(room.getRoomTags());
-                roomModelBuilder.setFloorId(room.getFloorId());
-                for (Area area : room.getAreas()) {
-                    roomModelBuilder.addAreaName(area.getName());
-                }
-                for (Map.Entry<String, String> notable : room.getNotables().entrySet()) {
-                    roomModelBuilder.addNotable(notable.getKey(), notable.getValue());
-                }
-                return roomModelBuilder.build();
+        return room -> {
+            RoomModelBuilder roomModelBuilder = new RoomModelBuilder();
+            for (RemoteExit remoteExit : room.getEnterExits()) {
+                roomModelBuilder.addEnterExitName(remoteExit.getRoomId(), remoteExit.getExitDetail());
             }
+            roomModelBuilder.setRoomDescription(room.getRoomDescription());
+            roomModelBuilder.setRoomTitle(room.getRoomTitle());
+            roomModelBuilder.setRoomId(room.getRoomId());
+            roomModelBuilder.setRoomTags(room.getRoomTags());
+            roomModelBuilder.setFloorId(room.getFloorId());
+            for (Area area : room.getAreas()) {
+                roomModelBuilder.addAreaName(area.getName());
+            }
+            for (Map.Entry<String, String> notable : room.getNotables().entrySet()) {
+                roomModelBuilder.addNotable(notable.getKey(), notable.getValue());
+            }
+            return roomModelBuilder.build();
         };
     }
 
     public Function<RoomModel, BasicRoom> getBasicRoom(final MapMatrix mapMatrix) {
-        return new Function<RoomModel, BasicRoom>() {
-            @Override
-            public BasicRoom apply(RoomModel roomModel) {
-                BasicRoomBuilder basicRoomBuilder = new BasicRoomBuilder(gameManager)
-                        .setRoomId(roomModel.getRoomId())
-                        .setFloorId(roomModel.getFloorId())
-                        .setRoomDescription(roomModel.getRoomDescription())
-                        .setRoomTitle(roomModel.getRoomTitle());
-
-                for (String tag : roomModel.getRoomTags()) {
-                    basicRoomBuilder.addTag(tag);
-                }
-                for (String areaName : roomModel.getAreaNames()) {
-                    Area byName = Area.getByName(areaName);
-                    if (byName != null) {
-                        basicRoomBuilder.addArea(byName);
-                    }
+        return roomModel -> {
+            BasicRoomBuilder basicRoomBuilder = new BasicRoomBuilder(gameManager)
+                    .setRoomId(roomModel.getRoomId())
+                    .setFloorId(roomModel.getFloorId())
+                    .setRoomDescription(roomModel.getRoomDescription())
+                    .setRoomTitle(roomModel.getRoomTitle());
+
+            for (String tag : roomModel.getRoomTags()) {
+                basicRoomBuilder.addTag(tag);
+            }
+            for (String areaName : roomModel.getAreaNames()) {
+                Area byName = Area.getByName(areaName);
+                if (byName != null) {
+                    basicRoomBuilder.addArea(byName);
                 }
-                Map<String, String> enterExitNames = roomModel.getEnterExitNames();
-                if (enterExitNames != null) {
-                    Iterator<Map.Entry<String, String>> iterator = enterExitNames.entrySet().iterator();
-                    while (iterator.hasNext()) {
-                        Map.Entry<String, String> next = iterator.next();
-                        RemoteExit remoteExit = new RemoteExit(RemoteExit.Direction.ENTER, Integer.parseInt(next.getKey()), next.getValue());
-                        basicRoomBuilder.addEnterExit(remoteExit);
-                        mapMatrix.addRemote(roomModel.getRoomId(), remoteExit);
-                    }
+            }
+            Map<String, String> enterExitNames = roomModel.getEnterExitNames();
+            if (enterExitNames != null) {
+                for (Map.Entry<String, String> next : enterExitNames.entrySet()) {
+                    RemoteExit remoteExit = new RemoteExit(RemoteExit.Direction.ENTER, Integer.parseInt(next.getKey()), next.getValue());
+                    basicRoomBuilder.addEnterExit(remoteExit);
+                    mapMatrix.addRemote(roomModel.getRoomId(), remoteExit);
                 }
-                Map<String, String> notables = roomModel.getNotables();
-                if (notables != null) {
-                    Iterator<Map.Entry<String, String>> iterator = notables.entrySet().iterator();
-                    while (iterator.hasNext()) {
-                        Map.Entry<String, String> next = iterator.next();
-                        basicRoomBuilder.addNotable(next.getKey(), next.getValue());
-                    }
+            }
+            Map<String, String> notables = roomModel.getNotables();
+            if (notables != null) {
+                for (Map.Entry<String, String> next : notables.entrySet()) {
+                    basicRoomBuilder.addNotable(next.getKey(), next.getValue());
                 }
-                configureExits(basicRoomBuilder, mapMatrix, roomModel.getRoomId());
-                return basicRoomBuilder.createBasicRoom();
             }
+            configureExits(basicRoomBuilder, mapMatrix, roomModel.getRoomId());
+            return basicRoomBuilder.createBasicRoom();
         };
     }
 
diff --git a/src/test/com/comandante/creeper/player/NpcTestHarness.java b/src/test/com/comandante/creeper/player/NpcTestHarness.java
index 84a1e36fb4c8a6a7ae9a7c848eaa2d7acbd3b20b..f682686a2a812e45f6c11ed4766e5b830e1f9efb 100644
--- a/src/test/com/comandante/creeper/player/NpcTestHarness.java
+++ b/src/test/com/comandante/creeper/player/NpcTestHarness.java
@@ -15,7 +15,6 @@ import com.comandante.creeper.server.CreeperSession;
 import com.comandante.creeper.world.MapsManager;
 import com.comandante.creeper.world.RoomManager;
 import com.comandante.creeper.world.WorldExporter;
-import com.google.common.base.Optional;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import org.apache.commons.configuration.MapConfiguration;
@@ -27,6 +26,7 @@ import org.mapdb.DBMaker;
 
 import java.io.FileNotFoundException;
 import java.util.List;
+import java.util.Optional;
 import java.util.UUID;
 import java.util.stream.Collectors;