Code From CIS 350 @ Spring 2014 - University of Pennsylvania