problem 1 functions