using std::unique_ptr (<memory>)