removed publisher and made self emit the event and documentation