update bargain logic