undertook recover function
improve recover function
implement recover2
change opt_recover
remove comment
Merge branch 'ph3'