Why does the `impi()` method take its `std::string` as a reference parameter rather than just returning the `std::string`?  ...particularly when we never check its boolean return code anyway?