merge from taoyage
clear