fix optional check bug