assign5 done

needs comments, but the code should be done