STERLING HEIGHTS, Michigan — Republican presidential nominee Donald Trump took his fight for Michigan to the northern suburbs of Detroit on Sunday evening, telling a packed crowd of 4,200 at the Freedom Hill Amphitheater that regardless of what FBI director James Comey said, Hillary Clinton was guilty.

“You can’t review 650,000 emails in eight days,” he said.

“Hillary is guilty. She knows it, the FBI knows it, the people know it, and now it’s up to the American people to deliver justice at the ballot box November 8th,” he said, to roars of applause.

Comey had announced earlier on Sunday that his team had reviewed the emails and that he found no reason to change his mind about not indicting Hillary Clinton for mis-handling classified information.

The FBI’s investigation into “pay-to-play” at the Clinton Foundation remains ongoing.

The crowd in Sterling Heights was booming and enthusiastic. Several thousand who tried to attend the rally had to be turned away for lack of space.

Trump made special mention of union members and Democrats, whom he welcomed to the rally. And he also invited a group of children onstage, five of whom were wearing T-shirts that spelled “T-R-U-M-P.” The crowd cheered: “U-S-A!”

The rally seemed younger, in general, than many Trump rallies, with children, teenagers, and millennials well-represented in the crowd. One woman held a sign in gold lettering: “Millennials for Trump.”

Rachel Williamson of Shelby Township, and Jessica Wuolukka, of Macomb, told Breitbart News that they came to the rally to show that young people support Trump.

“Trump’s the man. I support him, definitely,” Williamson said. “He’s going to get it right,” Wuolukka chimed in. “He’s a successful businessman.”

“He doesn’t have to to this, Williamson added. Wuolukka agreed: “He’s doing this because he loves us.”

There were also signs in the crowd heralding “Jews for Trump,” “Chaldeans for Trump,” and “Blacks for Trump.” Trump noticed the latter sign, and praised it from the stage.

Trump attacked Obamacare, as well as the North American Free Trade Agreement (NAFTA), which he called the “worst” trade deal ever negotiated, and which he laid at the feet of Bill and Hillary Clinton. He also criticized the Syrian refugee program, and Obama’s foreign policy in Syria, where he had announced his intention to attack Islamic State-held Mosul long before doing do.

(U.S.-backed forces attacked the Islamic State stronghold of Raqqa this weekend, but without similar fanfare, perhaps in reaction to such criticism.)

As he has done at previous rallies, Trump attacked the media, who were booed by the crowd. The audience also burst spontaneously into a chant of “CNN sucks!”

Trump also drew cheers and jeers by mocking Jay-Z and his wife Beyoncé, who performed for Hillary Clinton late last week. He said that he did not need celebrities, or guitars, to draw a crowd.

That created a moment of awkwardness, since Trump had preceded onstage an hour before by musician Ted Nugent — whose speech and performance Trump missed as his motorcade rushed from the airport to the venue.

Nugent praised his fellow “Michiganiacs” who had showed up to pack the rally.

He told the audience to go home after the event and “fix” anyone who needed to be “fixed” to vote for Trump.

Michigan has 16 Electoral College votes, which it has not cast for a Republican presidential candidate since 1988. However, Trump’s threat to Clinton there is real. Hillary Clinton and President Barack Obama will both hold appearances in Michigan on Monday — as will Trump, in a return visit to Grand Rapids Monday evening.

Joel B. Pollak is Senior Editor-at-Large at Breitbart News. His new book, See No Evil: 19 Hard Truths the Left Can’t Handle, is available from Regnery through Amazon. Follow him on Twitter at @joelpollak.