See the description for part 1