Completed challenge 20. Much nicer than 19..