add some new fucntion