all done for lab3 :D