deal with negotiation. todo: automate negotiation