add recovery hooks
PrepareRecovery
Merge branch 'master' into recovery