Here is the *almost* comleted assignment.