Start of Assignment 4, unfinished.