added new exist-optional