fix
add test cases