register listener
prevent extra firings