potential spoilers ahead