fix a bug
add a test