lazy EventEmitter._listeners initialization
do not wrap isReady in a wrapper that doesn't do anything