robust null checking