users contract.  cleaner structure