optional won't set undefined value