added lots of stuff for the assignment 4