Recovery

Delegate the reconnection logic to the `recovery` module. 

Fixes #297