If `@failed` is false then `run` never gets called at all. I'm using it here as a special case to run the first time.