Player implements Observer