no difference between initiator and responder usage of sharedfunc