fix bug.
add test.