bug fix
fix
add new function