smart-pointer : first commit