Adding the Smart pointer implementation file.