Almost solved challenge 19.