finished till problem 4