adding ImpossibleBoardException so strategies can signal if they can't solve the board