fix contracts looseness