Part 3 and Part 4 Compile