Update mechanism to using a custom contract