add test,fix bug