optional, if with initializer https://stackoverflow.com/questions/39599242/in-c17-can-an-if-statement-with-an-initializer-be-used-to-unpack-an-optional