Assignment 6 (work in progress).