Final submission for assignment 3.