Assignment 3 complete(i think)