Draft of part 3: implementation.