diff --git a/api/pom.xml b/api/pom.xml
new file mode 100644
index 0000000..896d09a
--- /dev/null
+++ b/api/pom.xml
@@ -0,0 +1,53 @@
+
+
+ 4.0.0
+ jar
+
+
+ npclib
+ net.jitse
+ 2.0-SNAPSHOT
+
+
+ npclib-api
+
+
+
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+ minecraft-repo
+ https://libraries.minecraft.net
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.14.4-R0.1-SNAPSHOT
+ provided
+
+
+ org.spigotmc
+ spigot
+ 1.14.4-R0.1-SNAPSHOT
+ provided
+
+
+ com.mojang
+ authlib
+ 1.5.21
+ provided
+
+
+ io.netty
+ netty-all
+ 4.1.33.Final
+ provided
+
+
+
\ No newline at end of file
diff --git a/commons/src/main/java/com/comphenix/tinyprotocol/Reflection.java b/api/src/main/java/com/comphenix/tinyprotocol/Reflection.java
similarity index 99%
rename from commons/src/main/java/com/comphenix/tinyprotocol/Reflection.java
rename to api/src/main/java/com/comphenix/tinyprotocol/Reflection.java
index acf0c5f..c2bbbec 100755
--- a/commons/src/main/java/com/comphenix/tinyprotocol/Reflection.java
+++ b/api/src/main/java/com/comphenix/tinyprotocol/Reflection.java
@@ -1,3 +1,7 @@
+/*
+ * Copyright (c) 2018 Jitse Boonstra
+ */
+
package com.comphenix.tinyprotocol;
import org.bukkit.Bukkit;
diff --git a/commons/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java b/api/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
similarity index 84%
rename from commons/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
rename to api/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
index 0cfd2fa..cf67fa8 100755
--- a/commons/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
+++ b/api/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
@@ -1,11 +1,13 @@
+/*
+ * Copyright (c) 2018 Jitse Boonstra
+ */
+
package com.comphenix.tinyprotocol;
-import com.comphenix.tinyprotocol.Reflection.FieldAccessor;
-import com.comphenix.tinyprotocol.Reflection.MethodInvoker;
import com.google.common.collect.Lists;
import com.google.common.collect.MapMaker;
import io.netty.channel.*;
-import net.jitse.npclib.logging.NPCLibLogger;
+import net.jitse.npclib.NPCLib;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -19,8 +21,6 @@ import org.bukkit.scheduler.BukkitRunnable;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
-import java.util.logging.Level;
-import java.util.logging.Logger;
/**
* Minimized version of TinyProtocol by Kristian suited for NPCLib.
@@ -30,35 +30,35 @@ public abstract class TinyProtocol {
private static final AtomicInteger ID = new AtomicInteger(0);
// Used in order to lookup a channel
- private static final MethodInvoker getPlayerHandle = Reflection.getMethod("{obc}.entity.CraftPlayer", "getHandle");
- private static final FieldAccessor