add some  functions