by contract