Simple bilevel programming and extensions