Any reason for not using `std::unique_ptr` here?