finalised part 3