skipped ahead and implemented 3.4, parts a-d; still need to do 3.1-3.3 before it