this is assignment 3 in all actuality