USC CSCI201 final Project