negotiate() done