Improve the accuracy of the recovery. Support several advanced recovery methods. Fix some minor bugs.