add some basic function