fixed bug
add new func