add pub-sub.js