Zaslat SMS: Foundations of bilevel programming