Assignment #2 by Sean Stroup