solution to problem #4