Finished CMPSC580 Lab 2