 Schönfinkel’s ingenuity was that he introduced combinators to untangle variable bindings. The combinators \(\textsf{S}\), \(\textsf{K}\), \(\textsf{I}\), \(\textsf{B}\) and \(\textsf{C}\) (in contemporary notation) are his, and he established that \(\textsf{S}\) and \(\textsf{K}\) suffice to define all the other combinators. In effect, he also defined an algorithm to carry out the elimination of bound variables, which is essentially one of the algorithms used nowadays to define bracket abstraction in  CL.[3]