Improve error handling

* listen to `listening` event to report server start