Recovery

Delegate the reconnection logic to the `recovery` module. 

Fixes #297
@3rd-Eden this should be passed `err` not `e` correct?