move is_observer to gameboard, with accessor in playcontroller