moved Emitter from utils.js to emitter.js
promises refactoring,  added include(), spread()