Final submission for part 2.