The off-script, expletive-dropping Donald Trump that we first met on the campaign trail in 2015 is back in front of cameras.

Trump took to the stage at the Conservative Political Action Committee (CPAC) conference this weekend for a long-winded and very quotable rant against the many perceived villains weighing down his presidency: namely the media, federal investigators and “socialist” challengers in the 2020 election. He started off the event by bear-hugging a pole with the American flag, setting the tone for the rest of his appearance — reportedly the longest speech of his presidency.

It was his first public address since his trip to Vietnam this week to meet with North Korean dictator Kim Jong Un ended abruptly without a deal on denuclearization. But it was nearly two hours into his speech Saturday before he made a single mention of the historic summit. Instead, he launched into a history lesson on the 1888 tariff debate, went into a bizarre aside referencing an (unnamed) friend in New York who is “a stone-cold killer” financier, and mocked both past members of his own administration as well as “white-haired” members of Congress.

His speech, clocking in at just over two hours, dragged out for so long he had to check in repeatedly with the audience to make sure they hadn’t dozed off. But there were plenty of moments from the annual conservative confab to keep the attendees’ attention. Here are the seven most absurd soundbites from the speech.

Trump delighted in going off script — and cussing a bunch, too

Reverting back to his performances on the campaign trail, where speeches would often unravel into winding rants of word association, Trump proudly made clear he wasn’t following some prewritten speech on a teleprompter.

“You know I’m totally off script right now. This is how I got elected: by being off script,” he said to a roar of cheers. “If we don’t go off script, our country is in big trouble, folks.”

Trump has repeatedly been criticized for using strong or explicit language during campaign rallies. On Saturday, he fell into the old routine.

He called the investigations into him “bullshit.” He said John Podesta, the former chair of Hillary Clinton’s campaign, “hasn’t gotten over getting his ass kicked.” He mocked the “New Green Deal” — “whatever the hell they call it.” After a while, it was hard to count the number of times he said “damn.”

Trump's argument is that Democrats will do Democratic things regardless, if he loses, and "it won't have a damn thing to do with whether or not we approve our national emergency." — Daniel Dale (@ddale8) March 2, 2019

Trump mocked Jeff Sessions’ southern drawl and other “white-haired” politicians

The president spent a significant amount of time criticizing members of his own administration. From former FBI Director James Comey, to special counsel Robert Mueller and Deputy Attorney General Rod Rosenstein, who is expected to leave the Department of Justice in coming weeks, Trump complained how, unlike him, they were not elected to office. He failed to mention, however, how many were appointed by himself.

Jeff Sessions received the brunt of hate from Trump, who called him “weak and ineffective” as attorney general. Trump went as far as deriding his former Cabinet member by mocking his Southern accent and his decision to bow out of overseeing the investigation. “I’m going to recuse mahself,” Trump said.

The president also made fun of old “white-haired” politicians, adding quickly: “I don’t have white hair.”

(Crowd) size still matters, apparently

By the time the president took the stage, Trump was rearing for a fight with the press. Trump went into an extended rant about disputed crowd sizes of attendees for his speeches and inauguration.

“I saw pictures that there were no people. Those pictures were taken hours before,” he said.

He name-checked individual reporters, namely Washington Post reporter Dave Weigel, who once apologized for tweeting a picture of a mostly empty arena hours before Trump was scheduled to speak, suggesting the president had few fans show up. Thousands of supporters actually attended the event. And though it was held more than two years ago, Trump still hasn’t let the slight go.

“He got there four or five hours early,” Trump continued. “He took pictures and you know who really got even? Our people, because they were incensed. I don’t think we’ve had an empty seat since we announced.”

On several occasions during his more than two-hour speech, Trump referenced how he hadn’t seen people grow tired of hearing him speak, claiming that not a single person had left the room (contrary to what other reporters present saw).

Trump thinks anyone who disagrees with him is un-American

Trump set the tone early in his speech with the amount of red meat to throw at the crowd of conservatives, warning of a “socialist takeover” that posed an existential threat to democracy and even going so far as to say outright that some elected officials hate the United States.

“We have people in Congress right now that hate our country... When I see some of the statements being made, it’s very very sad,” he said. “And find out — how did they do in their country? Did they do well? ... Some will say it’s terrible he brought that up, but I don’t mind.”

Trump announced plans to issue an executive order for free speech on college campuses

At one point, Trump brought on stage Hayden Williams, a conservative activist who was allegedly punched in the face last week while on the campus of the University of California at Berkeley. Williams, who works with the Leadership Institute in training and recruiting new activists, is not a student himself. But news of his alleged attack and a widely shared video capturing the moment have raised his profile considerably in recent days, used as an example of the hardships that young conservatives think they face in standing up for their beliefs on college campuses.

In response, Trump says he plans to sign an executive order requiring colleges and universities to support free speech, or risk losing their federal grants.

“We reject oppressive speech codes, censorship, political correctness and every other attempt by the hard left to stop people from challenging ridiculous and dangerous ideas. These ideas are dangerous,” Trump said. “Instead we believe in free speech, including online and including on campus.”

The section on Trump’s Christmas trip to Iraq was straight-up weird

Trump went into an extended story-telling mode when talking about his trip over the Christmas holiday to meet with American troops in Iraq.

He complained about getting cabin fever while being holed up in the White House during the government shutdown after canceling a planned trip to spend the holidays at his Mar-a-Lago resort in Florida.

“I’m in the White House and I was lonely,” he told the crowd. “I said, ‘Let’s go to Iraq!’”

Trump said the travel arrangements and security measures didn’t quite fit his expectations (“we can’t land the plane with the lights on!”) and went on a bizarre tangent about a general who calls himself “Raisin Kane.”

The story is so strange, you really just have to watch:

Trump goes on a long and bizarre rant about his trip to Iraq pic.twitter.com/H9JRbmlYQL — Aaron Rupar (@atrupar) March 2, 2019

The speech was packed with racially-coded dog whistles of a “migrant invasion”

His speech really went off the rails (as usual) when talking about immigration. Trump once again stoked fears of a “migrant invasion” at the southern border. He suggested that parents from Central America were sending their daughters with “massive amounts of birth control” to cross the US border illegally, knowing they would be raped by human traffickers. (“True story told to me by the Border Patrol,” he said, “Think of how evil that is.”)

He also resurrected old dog whistles about foreign women who give birth in the US to game the immigration system.

“They used to call it anchor babies, but they don’t use that term anymore because it’s not nice,” Trump said.