user contract definition