Change listeners to use once to avoid eventemitter leak warnings