added 3 functions