Solved Challenge 29.