part 1 rewritten