pimpl management good practice

Minor addition on unique_ptr: The C++ Core guidelines recommend to use make_unique() to make unique_ptrs instead of explicit allocation with new (mainly for exception safety - though in this particular case this is probably not relevant).