Bilevel programming problems with simple convex lower level