add some useful function