The function takes ownership of the object. This makes that explicit, and avoids unowned pointers floating around.