Refactored Player and PlayerSpec to fit the new architecture