Implementing versions of contracts