Updated SOlution as of 3/13/2014 10:54PM