Finished all but the most trivial parts of introductory challenge