optional union parsing fixxed