bilevel optimization with single-step inner methods