this fixes error: ‘optional’ in namespace ‘std’ does not name a template type
error: ‘optional’ in namespace ‘std’ does not name a template type