unique_ptr::reset instead of creating new with constructor
(as sugested by mistarro)