Using smart pointers.