Assignment I with extra credit COMPLETE