debug
add test cases