Major progress to assignment 3