add Deferred/Emitter
add jshint