Added some more documentation and added a recoveryCallback option