major refactor of player, add good analytics