add some basic func