What is Inverse Contract and Vanilla Contract?