Added Smart pointers