natalie's homework

Got through most of exercise 2, but it still needs heavy testing and is missing some functions. Will circle back to complete these sometime this week.