update optional handling