add update contract function