add pub-sub