This is a USC CSCI520 HW Repo