smart ptr's fun