fix bug
add test