hw0 pt3, needs unit test written