added user publisher/subscriber code