third week of homework. not all the files in this commit were written by me, as they were provided by the cs50 course.