recursive elimination