V2.0 add some new function