naive player refactor