add support of dependency injection and multi async events listening by new method listenWhen and listenWhenOnce
v0.3.0