improve CheckOptional