Updated SOlution as of 3/14/2014 11:14PM