go back to old non EventEmitter model