Assignment 3 and the building blocks of assignment 4