some bugs need to fix...=.=