don't close while there is no listener