adversarial method