With a callback style and event emitter style this gets kind of weird. Could the error handling also be done via emitter?