add some fuction