usertype contract