Bi-level Machines