Finish refactoring player [untested]