* optimization branch
* fix exit bug
* fix exit bug