replace shared_ptr by unique_ptr, vector of pointers by vector