HW5 part 1
HW5 part 1 & 2, attempt 2
HW5 part 1 & 2, attempt 4