part 1: comments added