create smartptr use make