use EventEmiter dependency
update after jshint