Listener can have default callbacks
remove Conditional and made all handler conditional
import once functions types