I wrote more inline documentation that should help the reader of the code to understand the design of the UserCourseSummary.