Refactor player events