Rewrote to use general event bus.