third done

add some additional function