Final version of assignment 1, part 1