Assignment 2 with final cosmetic changes