did 4 functions