part 5 implementation