Refactored Player class