solution to problem #3