refactor player view