Included <memory> and using std::shared_ptr