std::optional refactor