part 3 self-refential