you can write this simpler as
  free_surface.reset (new FreeSurfaceHandler(...))