Warning: Spoilers! Also, plot holes.