homework 4, step 0
homework 4, step 1
homework 4, step 2
homework 4, step 3
homework 4, step 4
homework 4, step 5
homework 4, step 6
homework 4, step 7
homework 4, step 8
homework 4, step 9
minor cleanup of formatting