update some new function