Move implementation details out of Bukkit