add test, need debug