part 3 & toString