simplified publish(), added lots of comments

Also fixed bug in unsubscribe() and removed fire()