use event_emitter.js  #11