Invia SMS: Foundations of bilevel programming