added some new func