diff --git a/src/main/java/com/comandante/creeper/npc/NpcMover.java b/src/main/java/com/comandante/creeper/npc/NpcMover.java
index a27fe114fc23acc289c009dc67a43e3539f9d643..771cf0a60ac2ea9b271d16c76562f4414c876ef1 100644
--- a/src/main/java/com/comandante/creeper/npc/NpcMover.java
+++ b/src/main/java/com/comandante/creeper/npc/NpcMover.java
@@ -8,7 +8,6 @@ import com.comandante.creeper.spawner.SpawnRule;
 import com.comandante.creeper.world.Area;
 import com.comandante.creeper.world.Room;
 import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import org.apache.log4j.Logger;
@@ -17,6 +16,7 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Random;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 public class NpcMover {
 
@@ -38,21 +38,18 @@ public class NpcMover {
         }
         Room npcCurrentRoom = gameManager.getRoomManager().getNpcCurrentRoom(npcEntity).get();
         Set<Integer> possibleExits = getPossibleExits(npcCurrentRoom);
-        Predicate<Integer> roamableByArea = new Predicate<Integer>() {
-            @Override
-            public boolean apply(Integer roomId) {
-                Room room = gameManager.getRoomManager().getRoom(roomId);
-                for (Area roomArea : room.getAreas()) {
-                    if (npcEntity.getRoamAreas().contains(roomArea)) {
-                        if (doesRoomHaveEmptyNpcsSpots(room, npcEntity, roomArea)){
-                            return true;
-                        }
+        Predicate<Integer> roamableByArea = roomId -> {
+            Room room = gameManager.getRoomManager().getRoom(roomId);
+            for (Area roomArea : room.getAreas()) {
+                if (npcEntity.getRoamAreas().contains(roomArea)) {
+                    if (doesRoomHaveEmptyNpcsSpots(room, npcEntity, roomArea)){
+                        return true;
                     }
                 }
-                return false;
             }
+            return false;
         };
-        List<Integer> canRoam = Lists.newArrayList(Iterables.filter(possibleExits, roamableByArea));
+        List<Integer> canRoam = Lists.newArrayList(possibleExits.stream().filter(roamableByArea::apply).collect(Collectors.toList()));
         if (canRoam.size() <= 0) {
             return;
         }