Mostly complete Lab5 CS380