Working Assignment, Needs cleaning up, and annotations.