Use nil internally to represent an empty square