fix bug
add function