Parts 1, 2, and 3a code done. (Not write up.)