Player refactoring