added Process<> to wrap shared pointers to process nodes