add optional field logic