Added BoardState trait to give read only view of board