Updated solution for problem #1