The contentious contours of the Democratic presidential primary came into full view in New Hampshire over the weekend, as months of cordial campaigning in Iowa quickly escalated into a raucous sprint to Tuesday's primary.
Vermont Sen. Bernie Sanders and former South Bend, Indiana, Mayor Pete Buttigieg, both drawing the largest crowds in the Granite State after a near-tie in the Iowa caucuses, began treating each other as primary rivals for the Democratic nomination.
Former Vice President Joe Biden, meanwhile, unleashed the harshest attack advertisement of the primary to date, targeting Buttigieg as he struggles to regain his footing and prevent his support among moderate Democrats from evaporating amid a worse-than-expected finish in Iowa and a new threat for that centrist lane from Minnesota Sen. Amy Klobuchar, whose events mostly outdrew Biden's over the weekend.
And Massachusetts Sen. Elizabeth Warren, who has fallen behind Sanders among the party's most progressive voters and Buttigieg among college-educated liberals, sought to avoid an embarrassing finish in her neighboring state.
Across New Hampshire, undecided voters this weekend were still using the results from Iowa -- as well as the Friday night's combative debate in New Hampshire -- to decide where to throw their support on Tuesday.
"I've been leaning toward Biden. But I haven't really been impressed with Joe in the debates, so I want to see him in person," said Valerie Brown, a 64-year-old retired health care consultant from Derry, New Hampshire, who is considering Biden and Buttigieg. "Sometimes he can get caught up in his own language and he can kind of lose his train of thought. And just, not the energy. He just seems a little -- he seems a little old."
Brown was expressing an opinion held by a number of voters CNN spoke to over the weekend.
"I don't want him to basically be Obama 2.0. I want him to think for himself," said Seth Mandell, a 57-year-old from Nashua who was deciding between Biden, Buttigieg and Klobuchar. "Times are changing. ... I want Biden to be able to say, OK, that was then, this is now, this is what we've got to do."
The former vice president's tumble had reshaped the race, but the highest-stakes battle was between the two men who a CNN poll conducted by the University of New Hampshire found leading ahead of Tuesday's primary.
Sanders, the favorite in New Hampshire, and Buttigieg, whose momentum from Iowa has helped him compete in the state with the neighboring senator, spent the weekend sparring from afar through a series of television appearances, rallies and town halls.
Sanders seized on Buttigieg's acceptance of money from wealthy donors, using it to separate himself from his competitors and argue that his campaign, fueled by online contributions, is "rewriting the rules of campaign finance."
"Of course, it matters," Sanders said of Buttigieg donations at an event in Plymouth. "Do you think that the person you're giving money to is going to stand up to the corporate elite and fight for a government that represents all of us? I don't think so."
Buttigieg, over the course of the weekend, responded to Sanders by arguing that Democrats can't afford to distance themselves from all wealthy people who want to oust President Donald Trump.
"Bernie's pretty rich and I'd happily accept a contribution from him," Buttigieg said. "This is about making sure we bring everybody into the fight at a moment when we're going to be going up against Donald Trump."
Buttigieg chose to go after Sanders in a different way: His ubiquitous calls for a revolution.
"I respect Sen. Sanders," Buttigieg said, "but when I hear this message go out that you're either for revolution, or you've got to be for the status quo, that's a vision of the country that doesn't have room for most of us."
The discord between Buttigieg and Sanders trickled down to their supporters on Saturday night, when both sides heckled and jeered their competitors at a major New Hampshire Democratic Party dinner on Saturday.
When Buttigieg slammed the idea during his speech that "either for a revolution or the status quo," many in the Sanders section booed, while a few began chanting "Wall Street Pete."
The Buttigieg supporters got back at Sanders later in the event. After Sanders mentioned winning the "popular vote" in Iowa, the former mayor's supporters reminded the Vermont senator of their delegate lead by chanting "Buttigieg, Buttigieg."
Buttigieg was the center of attacks from Biden this weekend, too, highlighting how both Sanders, the race's top progressive, and the former vice president view stopping the rise of the former South Bend Mayor central to their success.
Biden, hours after the Friday debate, released arguably the toughest attack ad of the presidential cycle with a digital spot that mocked the former mayor's experience in South Bend by comparing it to a host of Obama administration accomplishments.
Biden followed up the attack in a press conference on Saturday by scornfully responding to a comparison between Buttigieg and Obama.
"He's not Barack Obama," Biden quipped.
That press conference -- rare for Biden, who has largely avoided taking questions from the reporters who cover his campaign in recent weeks -- was a vent session of sorts. And since then, he has dialed back his attacks on Buttigieg and Sanders, whose "Medicare for All" plan he calls politically unrealistic.
Instead, at a 90-minute town hall Sunday in Hudson, Biden made a moral case for his candidacy, pointing to his role in enacting the Violence Against Women Act and blaming the GOP-led Senate for its failure to reauthorize it -- in part over the Democratic-led House's insistence on closing a gun control loophole in the law.
"Trump is owned by the NRA. They will not let it pass. It's wrong, it's wrong, it's wrong," Biden yelled.
Gone were Biden's attacks on Buttigieg's experience. Asked in Hudson who he'd pick for vice president, Biden said he wanted someone whose ideology aligned with his and said that ruled out anyone who backed "Medicare for All" -- which would include Sanders and Warren. In a nod to Buttigieg, he said he's looking for someone simpatico with his political beliefs, "starting with Indiana and starting with other places."
Most New Hampshire voters CNN spoke with this weekend had not seen the Biden attack ad. But those who had heard about it -- including Steve Schmidt, a 64-year-old from Salem -- said it did not sit well with them.
Schmidt, who is leaning towards Buttigieg but likes Biden, told CNN that his wife first saw the ad and was not impressed.
"'I can't believe he's doing that,'" Schmidt recalled his wife saying, adding that she -- more than he -- was thinking about backing Biden but now feels like she can't.
Buttigieg declined to go after Biden by name at events in New Hampshire. But did react during a round of Sunday shows by subtly calling the former vice president out of touch and agreeing that he is no Obama.
"He's right, I'm not. And neither is he," Buttigieg told CNN's Jake Tapper on Sunday. "This isn't 2008, it's 2020 and we are in a new moment calling for a different kind of leadership."
And Buttigieg looked to turn his time as mayor -- and the somewhat derisive tone Biden's ad directed at local experience -- against the former vice president.
"So glad to have the support of a fellow mayor at a time like this," Buttigieg said in Nashua on Sunday after he was introduced by the city's mayor. "Remember, mayors have to get things done," Buttigieg added, noting that "city government shutting down because the two parties couldn't agree."
While Buttigieg, Biden and Sanders held rallies, Warren focused no canvassing events and small meet-and-greets.
It was an effort to get around a problem that confounds presidential campaigns at this time in the election cycle: political tourism. Residents of neighboring states, especially Massachusetts, attend campaign rallies to get a glimpse of the candidates. But for presidential hopefuls, they're not helpful, because they can't vote in Tuesday's primary.
Warren told reporters in Concord she's "out there fighting for every vote."
Warren said she doesn't want to attack her opponents because "we're going to have to bring our party together in order to beat Donald Trump. And the way we do this is not by launching a bunch of attacks on each other and trying to tear each other down."
Klobuchar, meanwhile, was trying to build on momentum from her competitive fifth-place finish in Iowa and rave reviews of her debate performance Friday night. She announced in Nashua she'd raised $3 million in the two days after the debate.
"I think you know in your heart I can do this," she started off. "You will see that I am someone that's tough enough to take this guy on and I am someone that has the ideas and the experience to put them into action."
Then, in a not-so-subtle shot in Iowa, Klobuchar added: "All I need is your vote, so I'm asking you for that today. This is it. New Hampshire has a huge role. You're the first primary, you are going to be able to count the votes."