Edited Assignment 5 for clarity: Matt Tripp