add some new func