Finished Assignment 2 (w/o ExtraCredit)