defensive check