player forces refactoring