A first stab at assignment #3