returning event emitter and allowing passing a callback