solution to problem #1