Define uses smart pointers.