convex bi-level optimization problems