player refactored in its own class