Use shared pointers to pass unique stuff around.