preparing player refactor