update solution to Q18