optional + required