Part 3 mostly done