This is almost Spigot API ready