Are there any guidelines within the Insight project as to when to pass arguments as plain pointers, smart pointers, or by value? Is there any tutorial explanation about using SmartPointers and the ObjectFactory? I'm having trouble synthesizing all the scattered pieces of code into a coherent picture that tells me when and how to use these mechanisms. Paul Hughett