add new function
add unittest