**contains spoilers**