Factory project for USC's CSCI201 class