Mixing events and callbacks makes it difficult to reason about the code. You should pass the error to `done` and let the caller to decide how to handle it. E.g. by emitting a 'connect' event.