WASHINGTON ― House Speaker Paul Ryan (R-Wis.) on Monday responded forcefully to President Donald Trump’s defense of the white supremacist and neo-Nazi groups that precipitated this month’s violence in Charlottesville, Virginia, while still declining to denounce Trump directly.

During a town hall forum broadcast on CNN, Ryan said Trump “messed up in his comments” in a no-holds-barred news conference last week.

“I think he made comments that were much more morally ambiguous, much more confusing, and I do think he could have done better and needed to do better,” Ryan said, in response to an audience question asking whether he would denounce Trump. “I do believe he messed up in his comments on Tuesday.”

Moderator Jake Tapper pressed Ryan further, suggesting he should criticize Trump’s defense of violent protesters as “very fine people.”

“That was wrong,” Ryan said, adding that Trump “has since then cleared that up.”

Ryan declined to say whether Trump had done enough. “We all have a lot more to do to make sure these guys don’t get normalized,” he said.

Ryan released a lengthy statement Monday morning affirming that “there are no sides.” The comment alluded to Trump blaming “both sides” for Charlottesville violence incited by a rally organized by white supremacist groups.

Calling the events “a test of our moral clarity,” Ryan attempted to present a contrast to Trump’s equivocation on the groups.

“There is no other argument. We will not tolerate this hateful ideology in our society,” Ryan said.

“That is why we all need to make clear there is no moral relativism when it comes to neo-Nazis. We cannot allow the slightest ambiguity on such a fundamental question,” he continued.

Nicholas Kamm/AFP/Getty Images House Speaker Paul Ryan, right, released a statement condemning white supremacists, but not calling out statements on the matter from President Donald Trump.

According to Ryan, “the immediate condemnations from left, right, and center affirmed that there is no confusion about right and wrong here.”

Yet Trump took more than 48 hours to call out the white supremacist, Ku Klux Klan and neo-Nazi groups.

Politicians of both parties widely condemned Trump’s response to the violence in Charlottesville, with a growing number of GOP lawmakers questioning Trump’s leadership and character. However, Ryan and Senate Majority Leader Mitch McConnell (R-Ky.) issued far more tempered statements that denounced the violence ― but didn’t refer to Trump directly.

Following Trump’s combative press conference Tuesday, in which he defended the protesters as “very fine people,” Ryan responded on Twitter, saying that “there can be no moral ambiguity.”

We must be clear. White supremacy is repulsive. This bigotry is counter to all this country stands for. There can be no moral ambiguity. — Paul Ryan (@SpeakerRyan) August 15, 2017

On Thursday, two days after Trump’s remarks, McConnell was reportedly “upset” about the president, but then issued a similarly standard statement, which made no mention of Trump.

America does not do a good job of tracking incidents of hate and bias. We need your help to create a database of such incidents across the country, so we all know what’s going on. Tell us your story.

This article has been updated to include Ryan’s comments Monday night.