problem 1, complete