Another software engineering assignment.