added  and  functions