PR of initial master commits

Consider passing a param here, and to the stop() function, to suppress their events from being emitted - should probably not emit stop, restart and start events for a restart.