added LifecycleListener, mostly meant for extensions