use FromOptional