complete through part 4