replace new by make_shared