added some new function