rollback
Revert 12e4c9e..37b5e80

This rolls back to commit 12e4c9eded9474a7d4e85593b678508113ac6906.
recover
fix up some bugs and refine ui