Objects now use smart pointers