From 5ea238c366e1a8022107d73833ccabb79b03ff11 Mon Sep 17 00:00:00 2001
From: Chris Kearney <chris.kearney@urbanairship.com>
Date: Thu, 28 Aug 2014 22:36:54 -0700
Subject: [PATCH] organizing code

---
 .../creeper/Items/ItemDecayManager.java       |  4 +--
 .../comandante/creeper/Items/ItemType.java    |  2 +-
 .../java/com/comandante/creeper/Main.java     | 16 +++++-----
 .../com/comandante/creeper/RandomMOTD.java    |  7 ----
 .../creeper/command/commands/Command.java     |  2 +-
 .../creeper/command/commands/DropCommand.java |  4 +--
 .../command/commands/GossipCommand.java       |  6 ++--
 .../command/commands/InventoryCommand.java    |  7 ++--
 .../creeper/command/commands/KillCommand.java |  6 ++--
 .../creeper/command/commands/LookCommand.java |  4 +--
 .../command/commands/MovementCommand.java     | 28 ++++++++--------
 .../command/commands/PickUpCommand.java       |  4 +--
 .../creeper/command/commands/SayCommand.java  |  8 ++---
 .../creeper/command/commands/TellCommand.java |  6 ++--
 .../creeper/command/commands/WhoCommand.java  |  6 ++--
 .../command/commands/WhoamiCommand.java       |  2 +-
 .../{model => entity}/CreeperEntity.java      |  2 +-
 .../{managers => entity}/EntityManager.java   |  9 +++---
 .../{model => managers}/FightManager.java     | 11 ++++---
 .../creeper/managers/GameManager.java         | 32 ++++++++++---------
 .../managers/NewUserRegistrationManager.java  |  5 +--
 .../creeper/model/FightResults.java           | 11 -------
 .../com/comandante/creeper/npc/Derper.java    |  5 ++-
 .../java/com/comandante/creeper/npc/Npc.java  |  8 ++---
 .../creeper/{model => npc}/NpcStats.java      |  4 ++-
 .../creeper/{model => player}/Player.java     |  3 +-
 .../{managers => player}/PlayerManager.java   |  9 ++----
 .../{model => player}/PlayerMetadata.java     |  4 ++-
 .../PlayerMetadataSerializer.java             |  2 +-
 .../PlayerMovement.java}                      | 16 +++++-----
 .../{model => player}/PlayerStats.java        |  4 ++-
 .../creeper/{model => room}/BasicRoom.java    |  2 +-
 .../creeper/{model => room}/Room.java         |  6 ++--
 .../{builder => room}/RoomBuilders.java       | 11 +++----
 .../{managers => room}/RoomManager.java       |  5 ++-
 .../creeper/server/ChannelUtils.java          |  8 ++---
 .../creeper/{model => server}/Color.java      |  2 +-
 .../server/CreeperMapDBAuthenticator.java     |  4 +--
 .../creeper/server/CreeperServerHandler.java  |  2 +-
 .../comandante/creeper/server/RandomMOTD.java |  7 ++++
 .../{Items => spawner}/ItemSpawner.java       |  6 ++--
 .../{model => spawner}/NpcSpawner.java        |  4 +--
 .../creeper/{Items => spawner}/SpawnRule.java |  2 +-
 .../creeper/{model => stat}/StatType.java     |  2 +-
 .../creeper/{model => stat}/Stats.java        |  2 +-
 .../creeper/{model => stat}/StatsBuilder.java |  2 +-
 .../creeper/{model => stat}/StatsTester.java  |  5 ++-
 47 files changed, 155 insertions(+), 152 deletions(-)
 delete mode 100644 src/main/java/com/comandante/creeper/RandomMOTD.java
 rename src/main/java/com/comandante/creeper/{model => entity}/CreeperEntity.java (90%)
 rename src/main/java/com/comandante/creeper/{managers => entity}/EntityManager.java (94%)
 rename src/main/java/com/comandante/creeper/{model => managers}/FightManager.java (93%)
 delete mode 100644 src/main/java/com/comandante/creeper/model/FightResults.java
 rename src/main/java/com/comandante/creeper/{model => npc}/NpcStats.java (82%)
 rename src/main/java/com/comandante/creeper/{model => player}/Player.java (94%)
 rename src/main/java/com/comandante/creeper/{managers => player}/PlayerManager.java (93%)
 rename src/main/java/com/comandante/creeper/{model => player}/PlayerMetadata.java (95%)
 rename src/main/java/com/comandante/creeper/{model => player}/PlayerMetadataSerializer.java (94%)
 rename src/main/java/com/comandante/creeper/{model/Movement.java => player/PlayerMovement.java} (73%)
 rename src/main/java/com/comandante/creeper/{model => player}/PlayerStats.java (82%)
 rename src/main/java/com/comandante/creeper/{model => room}/BasicRoom.java (94%)
 rename src/main/java/com/comandante/creeper/{model => room}/Room.java (95%)
 rename src/main/java/com/comandante/creeper/{builder => room}/RoomBuilders.java (98%)
 rename src/main/java/com/comandante/creeper/{managers => room}/RoomManager.java (89%)
 rename src/main/java/com/comandante/creeper/{model => server}/Color.java (97%)
 create mode 100644 src/main/java/com/comandante/creeper/server/RandomMOTD.java
 rename src/main/java/com/comandante/creeper/{Items => spawner}/ItemSpawner.java (93%)
 rename src/main/java/com/comandante/creeper/{model => spawner}/NpcSpawner.java (96%)
 rename src/main/java/com/comandante/creeper/{Items => spawner}/SpawnRule.java (95%)
 rename src/main/java/com/comandante/creeper/{model => stat}/StatType.java (88%)
 rename src/main/java/com/comandante/creeper/{model => stat}/Stats.java (98%)
 rename src/main/java/com/comandante/creeper/{model => stat}/StatsBuilder.java (97%)
 rename src/main/java/com/comandante/creeper/{model => stat}/StatsTester.java (96%)

diff --git a/src/main/java/com/comandante/creeper/Items/ItemDecayManager.java b/src/main/java/com/comandante/creeper/Items/ItemDecayManager.java
index 73be57b0..93aa15c4 100644
--- a/src/main/java/com/comandante/creeper/Items/ItemDecayManager.java
+++ b/src/main/java/com/comandante/creeper/Items/ItemDecayManager.java
@@ -1,7 +1,7 @@
 package com.comandante.creeper.Items;
 
-import com.comandante.creeper.managers.EntityManager;
-import com.comandante.creeper.model.CreeperEntity;
+import com.comandante.creeper.entity.EntityManager;
+import com.comandante.creeper.entity.CreeperEntity;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/main/java/com/comandante/creeper/Items/ItemType.java b/src/main/java/com/comandante/creeper/Items/ItemType.java
index 41965b05..ae880049 100644
--- a/src/main/java/com/comandante/creeper/Items/ItemType.java
+++ b/src/main/java/com/comandante/creeper/Items/ItemType.java
@@ -4,7 +4,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 
-import static com.comandante.creeper.model.Color.*;
+import static com.comandante.creeper.server.Color.*;
 
 public enum ItemType {
 
diff --git a/src/main/java/com/comandante/creeper/Main.java b/src/main/java/com/comandante/creeper/Main.java
index 054b787d..8c1fa10b 100644
--- a/src/main/java/com/comandante/creeper/Main.java
+++ b/src/main/java/com/comandante/creeper/Main.java
@@ -1,15 +1,15 @@
 package com.comandante.creeper;
 
-import com.comandante.creeper.builder.RoomBuilders;
+import com.comandante.creeper.room.RoomBuilders;
 import com.comandante.creeper.command.CommandService;
 import com.comandante.creeper.command.DefaultCommandHandler;
-import com.comandante.creeper.managers.EntityManager;
+import com.comandante.creeper.entity.EntityManager;
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.managers.PlayerManager;
-import com.comandante.creeper.managers.RoomManager;
-import com.comandante.creeper.model.PlayerMetadata;
-import com.comandante.creeper.model.Stats;
-import com.comandante.creeper.model.StatsBuilder;
+import com.comandante.creeper.player.PlayerManager;
+import com.comandante.creeper.room.RoomManager;
+import com.comandante.creeper.player.PlayerMetadata;
+import com.comandante.creeper.stat.Stats;
+import com.comandante.creeper.stat.StatsBuilder;
 import com.comandante.creeper.npc.Derper;
 import com.comandante.creeper.server.CreeperServer;
 import org.apache.commons.codec.binary.Base64;
@@ -38,7 +38,7 @@ public class Main {
             playerManager.savePlayerMetadata(new PlayerMetadata("chris", "poop", new String(Base64.encodeBase64("chris".getBytes())), chrisBrianStats));
         }
 
-        if (playerManager.getPlayerMetadata(createPlayerId("chris")) == null) {
+        if (playerManager.getPlayerMetadata(createPlayerId("brian")) == null) {
             System.out.println("Creating Brian User.");
             playerManager.savePlayerMetadata(new PlayerMetadata("brian", "poop", new String(Base64.encodeBase64("brian".getBytes())), chrisBrianStats));
         }
diff --git a/src/main/java/com/comandante/creeper/RandomMOTD.java b/src/main/java/com/comandante/creeper/RandomMOTD.java
deleted file mode 100644
index aa23748f..00000000
--- a/src/main/java/com/comandante/creeper/RandomMOTD.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.comandante.creeper;
-
-
-public class RandomMOTD {
-
-
-}
diff --git a/src/main/java/com/comandante/creeper/command/commands/Command.java b/src/main/java/com/comandante/creeper/command/commands/Command.java
index 904543e7..a2fdcaef 100644
--- a/src/main/java/com/comandante/creeper/command/commands/Command.java
+++ b/src/main/java/com/comandante/creeper/command/commands/Command.java
@@ -1,7 +1,7 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
+import com.comandante.creeper.player.Player;
 import com.google.common.collect.ImmutableList;
 
 import java.util.ArrayList;
diff --git a/src/main/java/com/comandante/creeper/command/commands/DropCommand.java b/src/main/java/com/comandante/creeper/command/commands/DropCommand.java
index 882ba73e..5166a1ae 100644
--- a/src/main/java/com/comandante/creeper/command/commands/DropCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/DropCommand.java
@@ -2,8 +2,8 @@ package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.Items.Item;
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.PlayerMetadata;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.player.PlayerMetadata;
+import com.comandante.creeper.room.Room;
 import com.comandante.creeper.server.CreeperSession;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
diff --git a/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java b/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java
index 2a6da5aa..25fbc7f7 100644
--- a/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/GossipCommand.java
@@ -2,14 +2,14 @@ package com.comandante.creeper.command.commands;
 
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
+import com.comandante.creeper.player.Player;
 import com.google.common.collect.ImmutableList;
 
 import java.util.Iterator;
 import java.util.Map;
 
-import static com.comandante.creeper.model.Color.MAGENTA;
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.MAGENTA;
+import static com.comandante.creeper.server.Color.RESET;
 
 public class GossipCommand extends Command {
 
diff --git a/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java b/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java
index 32c24ea6..8d29264b 100644
--- a/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/InventoryCommand.java
@@ -4,15 +4,14 @@ package com.comandante.creeper.command.commands;
 import com.comandante.creeper.Items.Item;
 import com.comandante.creeper.Items.ItemType;
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.PlayerMetadata;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.player.PlayerMetadata;
 import com.google.common.collect.ImmutableList;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import static com.comandante.creeper.model.Color.CYAN;
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.RESET;
 
 public class InventoryCommand extends Command {
 
diff --git a/src/main/java/com/comandante/creeper/command/commands/KillCommand.java b/src/main/java/com/comandante/creeper/command/commands/KillCommand.java
index e19a4b9c..a905b661 100644
--- a/src/main/java/com/comandante/creeper/command/commands/KillCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/KillCommand.java
@@ -1,9 +1,9 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.FightManager;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.managers.FightManager;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.room.Room;
 import com.comandante.creeper.npc.Npc;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
diff --git a/src/main/java/com/comandante/creeper/command/commands/LookCommand.java b/src/main/java/com/comandante/creeper/command/commands/LookCommand.java
index ee286d43..15a7fb85 100644
--- a/src/main/java/com/comandante/creeper/command/commands/LookCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/LookCommand.java
@@ -1,8 +1,8 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.room.Room;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
 
diff --git a/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java b/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java
index cd87fc2b..253844ec 100644
--- a/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/MovementCommand.java
@@ -1,9 +1,9 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Movement;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.player.PlayerMovement;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.room.Room;
 import com.comandante.creeper.server.ChannelUtils;
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
@@ -47,7 +47,7 @@ public class MovementCommand extends Command {
         }
         Room currentRoom = roomOptional.get();
         final String command = getOriginalMessageParts().get(0);
-        Movement movement = null;
+        PlayerMovement playerMovement = null;
         if (!validTriggers.contains(command.toLowerCase())) {
             throw new RuntimeException("Malformed movement command.");
         }
@@ -57,7 +57,7 @@ public class MovementCommand extends Command {
                 return;
             }
             Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getNorthId().get());
-            movement = new Movement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the north.", "south");
+            playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the north.", "south");
         }
         if (southTriggers.contains(command.toLowerCase())) {
             if (!currentRoom.getSouthId().isPresent()) {
@@ -65,7 +65,7 @@ public class MovementCommand extends Command {
                 return;
             }
             Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getSouthId().get());
-            movement = new Movement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the south.", "north");
+            playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the south.", "north");
         }
         if (eastTriggers.contains(command.toLowerCase())) {
             if (!currentRoom.getEastId().isPresent()) {
@@ -73,7 +73,7 @@ public class MovementCommand extends Command {
                 return;
             }
             Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getEastId().get());
-            movement = new Movement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the east.", "west");
+            playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the east.", "west");
         }
         if (westTriggers.contains(command.toLowerCase())) {
             if (!currentRoom.getWestId().isPresent()) {
@@ -81,7 +81,7 @@ public class MovementCommand extends Command {
                 return;
             }
             Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getWestId().get());
-            movement = new Movement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the west.", "east");
+            playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the west.", "east");
         }
         if (upTriggers.contains(command.toLowerCase())) {
             if (!currentRoom.getUpId().isPresent()) {
@@ -89,7 +89,7 @@ public class MovementCommand extends Command {
                 return;
             }
             Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getUpId().get());
-            movement = new Movement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the west.", "down");
+            playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the west.", "down");
         }
         if (downTriggers.contains(command.toLowerCase())) {
             if (!currentRoom.getDownId().isPresent()) {
@@ -97,12 +97,12 @@ public class MovementCommand extends Command {
                 return;
             }
             Room destinationRoom = gameManager.getRoomManager().getRoom(currentRoom.getDownId().get());
-            movement = new Movement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the west.", "up");
+            playerMovement = new PlayerMovement(player, currentRoom.getRoomId(), destinationRoom.getRoomId(), this, "exited to the west.", "up");
         }
-        gameManager.movePlayer(movement);
-        if (movement != null) {
-            player.setReturnDirection(Optional.of(movement.getReturnDirection()));
-            gameManager.currentRoomLogic(movement.getPlayer().getPlayerId());
+        gameManager.movePlayer(playerMovement);
+        if (playerMovement != null) {
+            player.setReturnDirection(Optional.of(playerMovement.getReturnDirection()));
+            gameManager.currentRoomLogic(playerMovement.getPlayer().getPlayerId());
         }
     }
 }
diff --git a/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java b/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java
index eeb3cd3d..e173feb0 100644
--- a/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/PickUpCommand.java
@@ -2,8 +2,8 @@ package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.Items.Item;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.room.Room;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
 
diff --git a/src/main/java/com/comandante/creeper/command/commands/SayCommand.java b/src/main/java/com/comandante/creeper/command/commands/SayCommand.java
index f4737909..682e8c3e 100644
--- a/src/main/java/com/comandante/creeper/command/commands/SayCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/SayCommand.java
@@ -1,15 +1,15 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.room.Room;
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableList;
 
 import java.util.Set;
 
-import static com.comandante.creeper.model.Color.RED;
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.RED;
+import static com.comandante.creeper.server.Color.RESET;
 
 public class SayCommand extends Command {
 
diff --git a/src/main/java/com/comandante/creeper/command/commands/TellCommand.java b/src/main/java/com/comandante/creeper/command/commands/TellCommand.java
index eb0c2c2a..26149884 100644
--- a/src/main/java/com/comandante/creeper/command/commands/TellCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/TellCommand.java
@@ -1,15 +1,15 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
+import com.comandante.creeper.player.Player;
 import com.google.common.base.Joiner;
 import com.google.common.collect.ImmutableList;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import static com.comandante.creeper.model.Color.RESET;
-import static com.comandante.creeper.model.Color.YELLOW;
+import static com.comandante.creeper.server.Color.RESET;
+import static com.comandante.creeper.server.Color.YELLOW;
 
 public class TellCommand extends Command {
 
diff --git a/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java b/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java
index 55486998..27a6b5db 100644
--- a/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/WhoCommand.java
@@ -1,13 +1,13 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
+import com.comandante.creeper.player.Player;
 import com.google.common.collect.ImmutableList;
 
 import java.util.Set;
 
-import static com.comandante.creeper.model.Color.CYAN;
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.CYAN;
+import static com.comandante.creeper.server.Color.RESET;
 
 public class WhoCommand extends Command {
 
diff --git a/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java b/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java
index fc237539..cd1e6685 100644
--- a/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java
+++ b/src/main/java/com/comandante/creeper/command/commands/WhoamiCommand.java
@@ -1,7 +1,7 @@
 package com.comandante.creeper.command.commands;
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
+import com.comandante.creeper.player.Player;
 import com.google.common.collect.ImmutableList;
 
 public class WhoamiCommand extends Command {
diff --git a/src/main/java/com/comandante/creeper/model/CreeperEntity.java b/src/main/java/com/comandante/creeper/entity/CreeperEntity.java
similarity index 90%
rename from src/main/java/com/comandante/creeper/model/CreeperEntity.java
rename to src/main/java/com/comandante/creeper/entity/CreeperEntity.java
index 55059d5d..3a121db7 100644
--- a/src/main/java/com/comandante/creeper/model/CreeperEntity.java
+++ b/src/main/java/com/comandante/creeper/entity/CreeperEntity.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.entity;
 
 import java.util.UUID;
 
diff --git a/src/main/java/com/comandante/creeper/managers/EntityManager.java b/src/main/java/com/comandante/creeper/entity/EntityManager.java
similarity index 94%
rename from src/main/java/com/comandante/creeper/managers/EntityManager.java
rename to src/main/java/com/comandante/creeper/entity/EntityManager.java
index 87ae9e3b..20451bd8 100644
--- a/src/main/java/com/comandante/creeper/managers/EntityManager.java
+++ b/src/main/java/com/comandante/creeper/entity/EntityManager.java
@@ -1,11 +1,12 @@
-package com.comandante.creeper.managers;
+package com.comandante.creeper.entity;
 
-import com.comandante.creeper.model.CreeperEntity;
 import com.comandante.creeper.Items.Item;
 import com.comandante.creeper.Items.ItemSerializer;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
 import com.comandante.creeper.npc.Npc;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.player.PlayerManager;
+import com.comandante.creeper.room.Room;
+import com.comandante.creeper.room.RoomManager;
 import org.mapdb.DB;
 import org.mapdb.HTreeMap;
 
diff --git a/src/main/java/com/comandante/creeper/model/FightManager.java b/src/main/java/com/comandante/creeper/managers/FightManager.java
similarity index 93%
rename from src/main/java/com/comandante/creeper/model/FightManager.java
rename to src/main/java/com/comandante/creeper/managers/FightManager.java
index 5d2941f3..26fa7680 100644
--- a/src/main/java/com/comandante/creeper/model/FightManager.java
+++ b/src/main/java/com/comandante/creeper/managers/FightManager.java
@@ -1,9 +1,12 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.managers;
 
-import com.comandante.creeper.managers.EntityManager;
-import com.comandante.creeper.managers.PlayerManager;
-import com.comandante.creeper.managers.RoomManager;
+import com.comandante.creeper.entity.EntityManager;
+import com.comandante.creeper.stat.Stats;
+import com.comandante.creeper.player.PlayerManager;
+import com.comandante.creeper.room.RoomManager;
 import com.comandante.creeper.npc.Npc;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.player.PlayerMetadata;
 import com.comandante.creeper.server.ChannelUtils;
 
 import java.util.Random;
diff --git a/src/main/java/com/comandante/creeper/managers/GameManager.java b/src/main/java/com/comandante/creeper/managers/GameManager.java
index 7fdc731a..4707dd3a 100644
--- a/src/main/java/com/comandante/creeper/managers/GameManager.java
+++ b/src/main/java/com/comandante/creeper/managers/GameManager.java
@@ -3,11 +3,13 @@ package com.comandante.creeper.managers;
 
 import com.comandante.creeper.Items.Item;
 import com.comandante.creeper.Items.ItemDecayManager;
-import com.comandante.creeper.model.FightManager;
-import com.comandante.creeper.model.Movement;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.entity.EntityManager;
+import com.comandante.creeper.player.PlayerMovement;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.player.PlayerManager;
+import com.comandante.creeper.room.Room;
 import com.comandante.creeper.npc.Npc;
+import com.comandante.creeper.room.RoomManager;
 import com.comandante.creeper.server.ChannelUtils;
 import com.comandante.creeper.server.CreeperSession;
 import com.google.common.base.Optional;
@@ -20,9 +22,9 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
-import static com.comandante.creeper.model.Color.BRIGHT_GREEN;
-import static com.comandante.creeper.model.Color.GREEN;
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.BRIGHT_GREEN;
+import static com.comandante.creeper.server.Color.GREEN;
+import static com.comandante.creeper.server.Color.RESET;
 
 public class GameManager {
 
@@ -128,21 +130,21 @@ public class GameManager {
         playerCurrentRoom.get().addAfkPlayer(playerByUsername.getPlayerId());
     }
 
-    public void movePlayer(Movement movement) {
+    public void movePlayer(PlayerMovement playerMovement) {
         synchronized (Interners.newStrongInterner()) {
-            Room sourceRoom = roomManager.getRoom(movement.getSourceRoomId());
-            Room destinationRoom = roomManager.getRoom(movement.getDestinationRoomId());
-            sourceRoom.removePresentPlayer(movement.getPlayer().getPlayerId());
+            Room sourceRoom = roomManager.getRoom(playerMovement.getSourceRoomId());
+            Room destinationRoom = roomManager.getRoom(playerMovement.getDestinationRoomId());
+            sourceRoom.removePresentPlayer(playerMovement.getPlayer().getPlayerId());
             for (Player next : playerManager.getPresentPlayers(sourceRoom)) {
                 StringBuilder sb = new StringBuilder();
-                sb.append(movement.getPlayer().getPlayerName());
-                sb.append(" ").append(movement.getRoomExitMessage());
+                sb.append(playerMovement.getPlayer().getPlayerName());
+                sb.append(" ").append(playerMovement.getRoomExitMessage());
                 channelUtils.writeNoPrompt(next.getPlayerId(), sb.toString());
             }
             for (Player next : playerManager.getPresentPlayers(destinationRoom)) {
-                channelUtils.writeNoPrompt(next.getPlayerId(), movement.getPlayer().getPlayerName() + " arrived.");
+                channelUtils.writeNoPrompt(next.getPlayerId(), playerMovement.getPlayer().getPlayerName() + " arrived.");
             }
-            destinationRoom.addPresentPlayer(movement.getPlayer().getPlayerId());
+            destinationRoom.addPresentPlayer(playerMovement.getPlayer().getPlayerId());
         }
     }
 
diff --git a/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java b/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
index 84d5cf56..301eb2e3 100644
--- a/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
+++ b/src/main/java/com/comandante/creeper/managers/NewUserRegistrationManager.java
@@ -2,8 +2,9 @@ package com.comandante.creeper.managers;
 
 
 import com.comandante.creeper.Main;
-import com.comandante.creeper.model.PlayerMetadata;
-import com.comandante.creeper.model.PlayerStats;
+import com.comandante.creeper.player.PlayerManager;
+import com.comandante.creeper.player.PlayerMetadata;
+import com.comandante.creeper.player.PlayerStats;
 import com.comandante.creeper.server.CreeperSession;
 import com.google.common.base.Optional;
 import org.jboss.netty.channel.MessageEvent;
diff --git a/src/main/java/com/comandante/creeper/model/FightResults.java b/src/main/java/com/comandante/creeper/model/FightResults.java
deleted file mode 100644
index 67c32351..00000000
--- a/src/main/java/com/comandante/creeper/model/FightResults.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.comandante.creeper.model;
-
-public class FightResults {
-    private final Stats challenger;
-    private final Stats victim;
-
-    public FightResults(Stats challenger, Stats victim) {
-        this.challenger = challenger;
-        this.victim = victim;
-    }
-}
diff --git a/src/main/java/com/comandante/creeper/npc/Derper.java b/src/main/java/com/comandante/creeper/npc/Derper.java
index 0978dbea..81db52dd 100644
--- a/src/main/java/com/comandante/creeper/npc/Derper.java
+++ b/src/main/java/com/comandante/creeper/npc/Derper.java
@@ -2,14 +2,13 @@ package com.comandante.creeper.npc;
 
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.NpcStats;
 
 import java.util.Arrays;
 import java.util.List;
 import java.util.Random;
 
-import static com.comandante.creeper.model.Color.GREEN;
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.GREEN;
+import static com.comandante.creeper.server.Color.RESET;
 
 public class Derper extends Npc {
 
diff --git a/src/main/java/com/comandante/creeper/npc/Npc.java b/src/main/java/com/comandante/creeper/npc/Npc.java
index 150450db..4d3b0bff 100644
--- a/src/main/java/com/comandante/creeper/npc/Npc.java
+++ b/src/main/java/com/comandante/creeper/npc/Npc.java
@@ -2,11 +2,11 @@ package com.comandante.creeper.npc;
 
 
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.CreeperEntity;
-import com.comandante.creeper.model.Stats;
+import com.comandante.creeper.entity.CreeperEntity;
+import com.comandante.creeper.stat.Stats;
 
-import static com.comandante.creeper.model.Color.RED;
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.RED;
+import static com.comandante.creeper.server.Color.RESET;
 
 
 public abstract class Npc extends CreeperEntity {
diff --git a/src/main/java/com/comandante/creeper/model/NpcStats.java b/src/main/java/com/comandante/creeper/npc/NpcStats.java
similarity index 82%
rename from src/main/java/com/comandante/creeper/model/NpcStats.java
rename to src/main/java/com/comandante/creeper/npc/NpcStats.java
index 3e592575..dcfed517 100644
--- a/src/main/java/com/comandante/creeper/model/NpcStats.java
+++ b/src/main/java/com/comandante/creeper/npc/NpcStats.java
@@ -1,4 +1,6 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.npc;
+
+import com.comandante.creeper.stat.StatsBuilder;
 
 public class NpcStats {
     public final static StatsBuilder JOE_NPC = new StatsBuilder()
diff --git a/src/main/java/com/comandante/creeper/model/Player.java b/src/main/java/com/comandante/creeper/player/Player.java
similarity index 94%
rename from src/main/java/com/comandante/creeper/model/Player.java
rename to src/main/java/com/comandante/creeper/player/Player.java
index 9cf22a9c..f46abed8 100644
--- a/src/main/java/com/comandante/creeper/model/Player.java
+++ b/src/main/java/com/comandante/creeper/player/Player.java
@@ -1,8 +1,9 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.player;
 
 
 import com.comandante.creeper.Main;
 import com.comandante.creeper.managers.GameManager;
+import com.comandante.creeper.entity.CreeperEntity;
 import com.google.common.base.Optional;
 import org.apache.commons.codec.binary.Base64;
 import org.jboss.netty.channel.Channel;
diff --git a/src/main/java/com/comandante/creeper/managers/PlayerManager.java b/src/main/java/com/comandante/creeper/player/PlayerManager.java
similarity index 93%
rename from src/main/java/com/comandante/creeper/managers/PlayerManager.java
rename to src/main/java/com/comandante/creeper/player/PlayerManager.java
index 15e3846e..3b866b3c 100644
--- a/src/main/java/com/comandante/creeper/managers/PlayerManager.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerManager.java
@@ -1,11 +1,8 @@
-package com.comandante.creeper.managers;
+package com.comandante.creeper.player;
 
 
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.PlayerMetadata;
-import com.comandante.creeper.model.PlayerMetadataSerializer;
-import com.comandante.creeper.model.Room;
-import com.comandante.creeper.model.Stats;
+import com.comandante.creeper.room.Room;
+import com.comandante.creeper.stat.Stats;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 import org.apache.commons.codec.binary.Base64;
diff --git a/src/main/java/com/comandante/creeper/model/PlayerMetadata.java b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
similarity index 95%
rename from src/main/java/com/comandante/creeper/model/PlayerMetadata.java
rename to src/main/java/com/comandante/creeper/player/PlayerMetadata.java
index 95aedbc6..7483a8a8 100644
--- a/src/main/java/com/comandante/creeper/model/PlayerMetadata.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerMetadata.java
@@ -1,6 +1,8 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.player;
 
 
+import com.comandante.creeper.stat.Stats;
+
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/src/main/java/com/comandante/creeper/model/PlayerMetadataSerializer.java b/src/main/java/com/comandante/creeper/player/PlayerMetadataSerializer.java
similarity index 94%
rename from src/main/java/com/comandante/creeper/model/PlayerMetadataSerializer.java
rename to src/main/java/com/comandante/creeper/player/PlayerMetadataSerializer.java
index d515f1ec..17691677 100644
--- a/src/main/java/com/comandante/creeper/model/PlayerMetadataSerializer.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerMetadataSerializer.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.player;
 
 import com.google.gson.GsonBuilder;
 import org.mapdb.Serializer;
diff --git a/src/main/java/com/comandante/creeper/model/Movement.java b/src/main/java/com/comandante/creeper/player/PlayerMovement.java
similarity index 73%
rename from src/main/java/com/comandante/creeper/model/Movement.java
rename to src/main/java/com/comandante/creeper/player/PlayerMovement.java
index 62c80608..845f71e5 100644
--- a/src/main/java/com/comandante/creeper/model/Movement.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerMovement.java
@@ -1,8 +1,8 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.player;
 
 import com.comandante.creeper.command.commands.MovementCommand;
 
-public class Movement {
+public class PlayerMovement {
 
     private final Player player;
     private final Integer sourceRoomId;
@@ -11,12 +11,12 @@ public class Movement {
     private final String roomExitMessage;
     private final String returnDirection;
 
-    public Movement(Player player,
-                    Integer sourceRoomId,
-                    Integer destinationRoomId,
-                    MovementCommand command,
-                    String roomExitMessage,
-                    String returnDirection) {
+    public PlayerMovement(Player player,
+                          Integer sourceRoomId,
+                          Integer destinationRoomId,
+                          MovementCommand command,
+                          String roomExitMessage,
+                          String returnDirection) {
         this.player = player;
         this.sourceRoomId = sourceRoomId;
         this.destinationRoomId = destinationRoomId;
diff --git a/src/main/java/com/comandante/creeper/model/PlayerStats.java b/src/main/java/com/comandante/creeper/player/PlayerStats.java
similarity index 82%
rename from src/main/java/com/comandante/creeper/model/PlayerStats.java
rename to src/main/java/com/comandante/creeper/player/PlayerStats.java
index 627298ac..c998797b 100644
--- a/src/main/java/com/comandante/creeper/model/PlayerStats.java
+++ b/src/main/java/com/comandante/creeper/player/PlayerStats.java
@@ -1,6 +1,8 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.player;
 
 
+import com.comandante.creeper.stat.StatsBuilder;
+
 public class PlayerStats {
 
     public final static StatsBuilder DEFAULT_PLAYER = new StatsBuilder()
diff --git a/src/main/java/com/comandante/creeper/model/BasicRoom.java b/src/main/java/com/comandante/creeper/room/BasicRoom.java
similarity index 94%
rename from src/main/java/com/comandante/creeper/model/BasicRoom.java
rename to src/main/java/com/comandante/creeper/room/BasicRoom.java
index bc27dcad..49037e03 100644
--- a/src/main/java/com/comandante/creeper/model/BasicRoom.java
+++ b/src/main/java/com/comandante/creeper/room/BasicRoom.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.room;
 
 import com.google.common.base.Optional;
 
diff --git a/src/main/java/com/comandante/creeper/model/Room.java b/src/main/java/com/comandante/creeper/room/Room.java
similarity index 95%
rename from src/main/java/com/comandante/creeper/model/Room.java
rename to src/main/java/com/comandante/creeper/room/Room.java
index bbf17355..6d2a50be 100644
--- a/src/main/java/com/comandante/creeper/model/Room.java
+++ b/src/main/java/com/comandante/creeper/room/Room.java
@@ -1,6 +1,8 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.room;
 
-import com.comandante.creeper.Items.ItemSpawner;
+import com.comandante.creeper.entity.CreeperEntity;
+import com.comandante.creeper.spawner.ItemSpawner;
+import com.comandante.creeper.spawner.NpcSpawner;
 import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
diff --git a/src/main/java/com/comandante/creeper/builder/RoomBuilders.java b/src/main/java/com/comandante/creeper/room/RoomBuilders.java
similarity index 98%
rename from src/main/java/com/comandante/creeper/builder/RoomBuilders.java
rename to src/main/java/com/comandante/creeper/room/RoomBuilders.java
index 0995b73a..eb341a33 100644
--- a/src/main/java/com/comandante/creeper/builder/RoomBuilders.java
+++ b/src/main/java/com/comandante/creeper/room/RoomBuilders.java
@@ -1,13 +1,12 @@
-package com.comandante.creeper.builder;
+package com.comandante.creeper.room;
 
-import com.comandante.creeper.Items.SpawnRule;
-import com.comandante.creeper.Items.ItemSpawner;
 import com.comandante.creeper.Items.ItemType;
-import com.comandante.creeper.managers.EntityManager;
+import com.comandante.creeper.entity.EntityManager;
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.BasicRoom;
-import com.comandante.creeper.model.NpcSpawner;
 import com.comandante.creeper.npc.Derper;
+import com.comandante.creeper.spawner.ItemSpawner;
+import com.comandante.creeper.spawner.NpcSpawner;
+import com.comandante.creeper.spawner.SpawnRule;
 import com.google.common.base.Optional;
 
 /**
diff --git a/src/main/java/com/comandante/creeper/managers/RoomManager.java b/src/main/java/com/comandante/creeper/room/RoomManager.java
similarity index 89%
rename from src/main/java/com/comandante/creeper/managers/RoomManager.java
rename to src/main/java/com/comandante/creeper/room/RoomManager.java
index 62d0a897..ebf3dd86 100644
--- a/src/main/java/com/comandante/creeper/managers/RoomManager.java
+++ b/src/main/java/com/comandante/creeper/room/RoomManager.java
@@ -1,7 +1,6 @@
-package com.comandante.creeper.managers;
+package com.comandante.creeper.room;
 
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.player.Player;
 import com.google.common.base.Optional;
 
 import java.util.Iterator;
diff --git a/src/main/java/com/comandante/creeper/server/ChannelUtils.java b/src/main/java/com/comandante/creeper/server/ChannelUtils.java
index 359b586a..a45f54fe 100644
--- a/src/main/java/com/comandante/creeper/server/ChannelUtils.java
+++ b/src/main/java/com/comandante/creeper/server/ChannelUtils.java
@@ -1,9 +1,9 @@
 package com.comandante.creeper.server;
 
-import com.comandante.creeper.managers.PlayerManager;
-import com.comandante.creeper.managers.RoomManager;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.Room;
+import com.comandante.creeper.player.PlayerManager;
+import com.comandante.creeper.room.RoomManager;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.room.Room;
 
 import java.util.Set;
 
diff --git a/src/main/java/com/comandante/creeper/model/Color.java b/src/main/java/com/comandante/creeper/server/Color.java
similarity index 97%
rename from src/main/java/com/comandante/creeper/model/Color.java
rename to src/main/java/com/comandante/creeper/server/Color.java
index b845ace7..f538b27e 100644
--- a/src/main/java/com/comandante/creeper/model/Color.java
+++ b/src/main/java/com/comandante/creeper/server/Color.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.server;
 
 import org.fusesource.jansi.Ansi;
 
diff --git a/src/main/java/com/comandante/creeper/server/CreeperMapDBAuthenticator.java b/src/main/java/com/comandante/creeper/server/CreeperMapDBAuthenticator.java
index 52b609f0..3235dc11 100644
--- a/src/main/java/com/comandante/creeper/server/CreeperMapDBAuthenticator.java
+++ b/src/main/java/com/comandante/creeper/server/CreeperMapDBAuthenticator.java
@@ -2,8 +2,8 @@ package com.comandante.creeper.server;
 
 import com.comandante.creeper.Main;
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.Player;
-import com.comandante.creeper.model.PlayerMetadata;
+import com.comandante.creeper.player.Player;
+import com.comandante.creeper.player.PlayerMetadata;
 import org.jboss.netty.channel.Channel;
 
 public class CreeperMapDBAuthenticator implements CreeperAuthenticator {
diff --git a/src/main/java/com/comandante/creeper/server/CreeperServerHandler.java b/src/main/java/com/comandante/creeper/server/CreeperServerHandler.java
index d4f6d652..dffe3e57 100644
--- a/src/main/java/com/comandante/creeper/server/CreeperServerHandler.java
+++ b/src/main/java/com/comandante/creeper/server/CreeperServerHandler.java
@@ -10,7 +10,7 @@ import org.jboss.netty.channel.ExceptionEvent;
 import org.jboss.netty.channel.MessageEvent;
 import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
 
-import static com.comandante.creeper.model.Color.RESET;
+import static com.comandante.creeper.server.Color.RESET;
 
 public class CreeperServerHandler extends SimpleChannelUpstreamHandler {
 
diff --git a/src/main/java/com/comandante/creeper/server/RandomMOTD.java b/src/main/java/com/comandante/creeper/server/RandomMOTD.java
new file mode 100644
index 00000000..e27178fe
--- /dev/null
+++ b/src/main/java/com/comandante/creeper/server/RandomMOTD.java
@@ -0,0 +1,7 @@
+package com.comandante.creeper.server;
+
+
+public class RandomMOTD {
+
+
+}
diff --git a/src/main/java/com/comandante/creeper/Items/ItemSpawner.java b/src/main/java/com/comandante/creeper/spawner/ItemSpawner.java
similarity index 93%
rename from src/main/java/com/comandante/creeper/Items/ItemSpawner.java
rename to src/main/java/com/comandante/creeper/spawner/ItemSpawner.java
index 0ec42286..90c03b4a 100644
--- a/src/main/java/com/comandante/creeper/Items/ItemSpawner.java
+++ b/src/main/java/com/comandante/creeper/spawner/ItemSpawner.java
@@ -1,7 +1,9 @@
-package com.comandante.creeper.Items;
+package com.comandante.creeper.spawner;
 
+import com.comandante.creeper.Items.Item;
+import com.comandante.creeper.Items.ItemType;
 import com.comandante.creeper.managers.GameManager;
-import com.comandante.creeper.model.CreeperEntity;
+import com.comandante.creeper.entity.CreeperEntity;
 
 import java.util.Random;
 import java.util.Set;
diff --git a/src/main/java/com/comandante/creeper/model/NpcSpawner.java b/src/main/java/com/comandante/creeper/spawner/NpcSpawner.java
similarity index 96%
rename from src/main/java/com/comandante/creeper/model/NpcSpawner.java
rename to src/main/java/com/comandante/creeper/spawner/NpcSpawner.java
index 1d9694e5..651c2ae8 100644
--- a/src/main/java/com/comandante/creeper/model/NpcSpawner.java
+++ b/src/main/java/com/comandante/creeper/spawner/NpcSpawner.java
@@ -1,7 +1,7 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.spawner;
 
 
-import com.comandante.creeper.Items.SpawnRule;
+import com.comandante.creeper.entity.CreeperEntity;
 import com.comandante.creeper.managers.GameManager;
 import com.comandante.creeper.npc.Npc;
 
diff --git a/src/main/java/com/comandante/creeper/Items/SpawnRule.java b/src/main/java/com/comandante/creeper/spawner/SpawnRule.java
similarity index 95%
rename from src/main/java/com/comandante/creeper/Items/SpawnRule.java
rename to src/main/java/com/comandante/creeper/spawner/SpawnRule.java
index 5ce18a49..37d699b1 100644
--- a/src/main/java/com/comandante/creeper/Items/SpawnRule.java
+++ b/src/main/java/com/comandante/creeper/spawner/SpawnRule.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.Items;
+package com.comandante.creeper.spawner;
 
 import com.google.common.base.Optional;
 
diff --git a/src/main/java/com/comandante/creeper/model/StatType.java b/src/main/java/com/comandante/creeper/stat/StatType.java
similarity index 88%
rename from src/main/java/com/comandante/creeper/model/StatType.java
rename to src/main/java/com/comandante/creeper/stat/StatType.java
index a9e64f4a..341d498e 100644
--- a/src/main/java/com/comandante/creeper/model/StatType.java
+++ b/src/main/java/com/comandante/creeper/stat/StatType.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.stat;
 
 public enum StatType {
     STRENGTH(1),
diff --git a/src/main/java/com/comandante/creeper/model/Stats.java b/src/main/java/com/comandante/creeper/stat/Stats.java
similarity index 98%
rename from src/main/java/com/comandante/creeper/model/Stats.java
rename to src/main/java/com/comandante/creeper/stat/Stats.java
index 48843191..0db340c2 100644
--- a/src/main/java/com/comandante/creeper/model/Stats.java
+++ b/src/main/java/com/comandante/creeper/stat/Stats.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.stat;
 
 import java.io.Serializable;
 
diff --git a/src/main/java/com/comandante/creeper/model/StatsBuilder.java b/src/main/java/com/comandante/creeper/stat/StatsBuilder.java
similarity index 97%
rename from src/main/java/com/comandante/creeper/model/StatsBuilder.java
rename to src/main/java/com/comandante/creeper/stat/StatsBuilder.java
index 8794d215..e3330ab2 100644
--- a/src/main/java/com/comandante/creeper/model/StatsBuilder.java
+++ b/src/main/java/com/comandante/creeper/stat/StatsBuilder.java
@@ -1,4 +1,4 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.stat;
 
 public class StatsBuilder {
     private int strength;
diff --git a/src/main/java/com/comandante/creeper/model/StatsTester.java b/src/main/java/com/comandante/creeper/stat/StatsTester.java
similarity index 96%
rename from src/main/java/com/comandante/creeper/model/StatsTester.java
rename to src/main/java/com/comandante/creeper/stat/StatsTester.java
index 7713d30f..75880474 100644
--- a/src/main/java/com/comandante/creeper/model/StatsTester.java
+++ b/src/main/java/com/comandante/creeper/stat/StatsTester.java
@@ -1,4 +1,7 @@
-package com.comandante.creeper.model;
+package com.comandante.creeper.stat;
+
+import com.comandante.creeper.npc.NpcStats;
+import com.comandante.creeper.player.PlayerStats;
 
 import java.util.Random;
 
-- 
GitLab