diff --git a/src/main/java/buttondevteam/chat/ChatPlayer.java b/src/main/java/buttondevteam/chat/ChatPlayer.java
index 9af729c..70a563e 100644
--- a/src/main/java/buttondevteam/chat/ChatPlayer.java
+++ b/src/main/java/buttondevteam/chat/ChatPlayer.java
@@ -6,8 +6,8 @@ import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.*;
+import buttondevteam.lib.player.TBMCPlayer;
public class ChatPlayer extends TBMCPlayer {
public String getUserName() {
diff --git a/src/main/java/buttondevteam/chat/ChatProcessing.java b/src/main/java/buttondevteam/chat/ChatProcessing.java
index 8cf9b81..c4f91d1 100644
--- a/src/main/java/buttondevteam/chat/ChatProcessing.java
+++ b/src/main/java/buttondevteam/chat/ChatProcessing.java
@@ -22,9 +22,9 @@ import buttondevteam.chat.commands.UnlolCommand;
import buttondevteam.chat.commands.ucmds.admin.DebugCommand;
import buttondevteam.chat.formatting.*;
import buttondevteam.lib.TBMCCoreAPI;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.Channel;
import buttondevteam.lib.chat.TellrawSerializableEnum;
+import buttondevteam.lib.player.TBMCPlayer;
import buttondevteam.chat.listener.PlayerListener;
import buttondevteam.lib.chat.*;
diff --git a/src/main/java/buttondevteam/chat/PluginMain.java b/src/main/java/buttondevteam/chat/PluginMain.java
index 2a131e9..4bb610e 100644
--- a/src/main/java/buttondevteam/chat/PluginMain.java
+++ b/src/main/java/buttondevteam/chat/PluginMain.java
@@ -17,8 +17,8 @@ import org.htmlcleaner.TagNode;
import buttondevteam.chat.commands.YeehawCommand;
import buttondevteam.chat.listener.PlayerListener;
import buttondevteam.lib.TBMCCoreAPI;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.TBMCChatAPI;
+import buttondevteam.lib.player.TBMCPlayer;
import com.earth2me.essentials.Essentials;
import com.google.gson.JsonArray;
@@ -57,7 +57,7 @@ public class PluginMain extends JavaPlugin { // Translated to Java: 2015.07.15.
* This variable is used as a cache for flair state checking when reading the flair thread.
*
*
- * It's used because normally it has to load all associated player files every time to read the filename
+ * It's used because normally it has to load all associated player files every time to read the flair state
*
*/
private Set PlayersWithFlairs = new HashSet<>();
diff --git a/src/main/java/buttondevteam/chat/commands/ChatonlyCommand.java b/src/main/java/buttondevteam/chat/commands/ChatonlyCommand.java
index 90a71f9..cfb56b3 100644
--- a/src/main/java/buttondevteam/chat/commands/ChatonlyCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ChatonlyCommand.java
@@ -5,8 +5,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.TBMCCommandBase;
+import buttondevteam.lib.player.TBMCPlayer;
public final class ChatonlyCommand extends TBMCCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/OOCCommand.java b/src/main/java/buttondevteam/chat/commands/OOCCommand.java
index c297a21..1bfce80 100644
--- a/src/main/java/buttondevteam/chat/commands/OOCCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/OOCCommand.java
@@ -4,8 +4,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.TBMCCommandBase;
+import buttondevteam.lib.player.TBMCPlayer;
public final class OOCCommand extends TBMCCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/WaitWhatCommand.java b/src/main/java/buttondevteam/chat/commands/WaitWhatCommand.java
index 7d55fc4..41a883b 100644
--- a/src/main/java/buttondevteam/chat/commands/WaitWhatCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/WaitWhatCommand.java
@@ -7,10 +7,10 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.Channel;
import buttondevteam.lib.chat.TBMCChatAPI;
import buttondevteam.lib.chat.TBMCCommandBase;
+import buttondevteam.lib.player.TBMCPlayer;
public class WaitWhatCommand extends TBMCCommandBase {
@Override
diff --git a/src/main/java/buttondevteam/chat/commands/YeehawCommand.java b/src/main/java/buttondevteam/chat/commands/YeehawCommand.java
index 1c7117d..a8f6d94 100644
--- a/src/main/java/buttondevteam/chat/commands/YeehawCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/YeehawCommand.java
@@ -4,8 +4,8 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import buttondevteam.lib.TBMCYEEHAWEvent;
import buttondevteam.lib.chat.TBMCCommandBase;
+import buttondevteam.lib.player.TBMCYEEHAWEvent;
public class YeehawCommand extends TBMCCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/appendtext/AppendTextCommandBase.java b/src/main/java/buttondevteam/chat/commands/appendtext/AppendTextCommandBase.java
index a81d352..fedc642 100644
--- a/src/main/java/buttondevteam/chat/commands/appendtext/AppendTextCommandBase.java
+++ b/src/main/java/buttondevteam/chat/commands/appendtext/AppendTextCommandBase.java
@@ -5,10 +5,10 @@ import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer;
import buttondevteam.chat.listener.PlayerListener;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.Channel;
import buttondevteam.lib.chat.TBMCChatAPI;
import buttondevteam.lib.chat.TBMCCommandBase;
+import buttondevteam.lib.player.TBMCPlayer;
public abstract class AppendTextCommandBase extends TBMCCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/AcceptCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/AcceptCommand.java
index 4eb8bad..981d9e7 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/AcceptCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/AcceptCommand.java
@@ -10,7 +10,7 @@ import buttondevteam.chat.FlairStates;
import buttondevteam.chat.PlayerJoinTimerTask;
import buttondevteam.chat.PluginMain;
import buttondevteam.lib.TBMCCoreAPI;
-import buttondevteam.lib.TBMCPlayer;
+import buttondevteam.lib.player.TBMCPlayer;
public class AcceptCommand extends UCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/CCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/CCommand.java
index f0eeef7..b122092 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/CCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/CCommand.java
@@ -5,8 +5,8 @@ import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer;
import buttondevteam.chat.PluginMain;
-import buttondevteam.lib.TBMCPlayer;
import buttondevteam.lib.chat.*;
+import buttondevteam.lib.player.TBMCPlayer;
public class CCommand extends UCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/IgnoreCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/IgnoreCommand.java
index 9bd5c5c..7747b33 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/IgnoreCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/IgnoreCommand.java
@@ -5,7 +5,7 @@ import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer;
import buttondevteam.chat.FlairStates;
-import buttondevteam.lib.TBMCPlayer;
+import buttondevteam.lib.player.TBMCPlayer;
public final class IgnoreCommand extends UCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/InfoCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/InfoCommand.java
index d5ce558..522f2e9 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/InfoCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/InfoCommand.java
@@ -2,8 +2,8 @@ package buttondevteam.chat.commands.ucmds;
import org.bukkit.command.CommandSender;
-import buttondevteam.lib.TBMCPlayer;
-import buttondevteam.lib.TBMCPlayer.InfoTarget;
+import buttondevteam.lib.player.TBMCPlayer;
+import buttondevteam.lib.player.TBMCPlayer.InfoTarget;
public class InfoCommand extends UCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/admin/PlayerInfoCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/admin/PlayerInfoCommand.java
index 5a2401d..a181957 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/admin/PlayerInfoCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/admin/PlayerInfoCommand.java
@@ -3,7 +3,7 @@ package buttondevteam.chat.commands.ucmds.admin;
import org.bukkit.command.CommandSender;
import buttondevteam.chat.ChatPlayer;
-import buttondevteam.lib.TBMCPlayer;
+import buttondevteam.lib.player.TBMCPlayer;
public class PlayerInfoCommand extends AdminCommandBase {
diff --git a/src/main/java/buttondevteam/chat/commands/ucmds/admin/SetFlairCommand.java b/src/main/java/buttondevteam/chat/commands/ucmds/admin/SetFlairCommand.java
index 1f0934f..419d2ef 100644
--- a/src/main/java/buttondevteam/chat/commands/ucmds/admin/SetFlairCommand.java
+++ b/src/main/java/buttondevteam/chat/commands/ucmds/admin/SetFlairCommand.java
@@ -6,7 +6,7 @@ import org.bukkit.entity.Player;
import buttondevteam.chat.ChatPlayer;
import buttondevteam.chat.FlairStates;
-import buttondevteam.lib.TBMCPlayer;
+import buttondevteam.lib.player.TBMCPlayer;
public class SetFlairCommand extends AdminCommandBase {
diff --git a/src/main/java/buttondevteam/chat/listener/PlayerJoinLeaveListener.java b/src/main/java/buttondevteam/chat/listener/PlayerJoinLeaveListener.java
index 8d8aff2..84119bc 100644
--- a/src/main/java/buttondevteam/chat/listener/PlayerJoinLeaveListener.java
+++ b/src/main/java/buttondevteam/chat/listener/PlayerJoinLeaveListener.java
@@ -17,10 +17,10 @@ import buttondevteam.chat.ChatPlayer;
import buttondevteam.chat.FlairStates;
import buttondevteam.chat.PlayerJoinTimerTask;
import buttondevteam.chat.PluginMain;
-import buttondevteam.lib.TBMCPlayerAddEvent;
-import buttondevteam.lib.TBMCPlayerJoinEvent;
-import buttondevteam.lib.TBMCPlayerLoadEvent;
-import buttondevteam.lib.TBMCPlayerSaveEvent;
+import buttondevteam.lib.player.TBMCPlayerAddEvent;
+import buttondevteam.lib.player.TBMCPlayerJoinEvent;
+import buttondevteam.lib.player.TBMCPlayerLoadEvent;
+import buttondevteam.lib.player.TBMCPlayerSaveEvent;
public class PlayerJoinLeaveListener implements Listener {
diff --git a/src/main/java/buttondevteam/chat/listener/PlayerListener.java b/src/main/java/buttondevteam/chat/listener/PlayerListener.java
index e6234e0..99988fe 100644
--- a/src/main/java/buttondevteam/chat/listener/PlayerListener.java
+++ b/src/main/java/buttondevteam/chat/listener/PlayerListener.java
@@ -31,11 +31,12 @@ import buttondevteam.chat.ChatProcessing;
import buttondevteam.chat.PluginMain;
import buttondevteam.lib.TBMCChatEvent;
import buttondevteam.lib.TBMCCoreAPI;
-import buttondevteam.lib.TBMCPlayer;
-import buttondevteam.lib.TBMCPlayer.InfoTarget;
import buttondevteam.lib.chat.Channel;
import buttondevteam.lib.chat.TBMCChatAPI;
-import buttondevteam.lib.TBMCPlayerGetInfoEvent;
+import buttondevteam.lib.player.TBMCPlayer;
+import buttondevteam.lib.player.TBMCPlayerGetInfoEvent;
+import buttondevteam.lib.player.TBMCPlayer.InfoTarget;
+
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.palmergames.bukkit.towny.exceptions.NotRegisteredException;