Final version assignment 2, without extras