For indispensable reporting on the coronavirus crisis, the election, and more, subscribe to the Mother Jones Daily newsletter.

Robert Mueller, whose reputation reached mythic proportions amid his nearly two years of silence as special counsel, seemed notably human during roughly seven hours of testimony on Wednesday. He struggled to hear lawmakers’ questions, stumbled at times over his words, and repeatedly ducked queries by referring back to his 450-page report. But while Mueller may have disappointed as a performer, Democrats on the House Judiciary and Intelligence Committees were surprisingly disciplined. And with an assist from some epically inept questioning by Republicans, the lawmakers led Mueller through a withering portrayal of President Donald Trump.

Freed of the brain-dead debate over whether or not Trump “colluded” with Russia, Democrats used the hearing to highlight what Mueller said Trump and his cohorts clearly did do: seek to benefit from Russia’s illegal actions, lie extensively about it, and then scramble to block investigations into those actions. Republicans used their questions largely to pursue far-right hobbyhorses—opposition research firm Fusion GPS remains a favorite—and to attack Mueller for writing a report at all. But they barely bothered to challenge the basic outline of events that emerged in the two hearings.

Trump and his presidential campaign “knew that a foreign power was intervening in our election and welcomed it, built Russian meddling into their strategy, and used it,” House Intelligence Committee Chair Adam Schiff (D-Calif.) said in opening remarks during the second hearing held Wednesday, summarizing Mueller’s report. (Mueller’s report says that the Trump campaign “expected it would benefit electorally from information stolen and released through Russian efforts.”) Schiff said this conduct, legal or not, showed “disloyalty to country.” Mueller supported these claims.

Time and again Mueller retreated behind a lawyerly formalism. But time and again Democrats made the most of it, winning terse assent from him as they laid out the damning case he’d built against Trump. Mueller confirmed the report’s description of the famous June 2016 Trump Tower meeting, in which Donald Trump Jr. eagerly sought what he expected was Russian government-furnished dirt on Hillary Clinton. Mueller agreed that the report says a mysterious Maltese professor, Joseph Mifsud, told George Papadopoulos, a campaign foreign policy aide, that the Russians had obtained a trove of Democratic emails and hoped to release them anonymously to help Trump’s campaign. GOP members on Tuesday echoed a theory pushed by Papadopoulos, who pleaded guilty in 2017 to lying to the FBI, that Mifsud was really a Western agent, working to ensnare the Trump campaign in a phony scheme. None of the questioners explained how Mifsud, if he was not working for Russian intelligence, knew that the Russians had stolen Democratic emails and correctly predicted how they planned to release them.

During the Intelligence Committee hearing Wednesday afternoon, Schiff asked Mueller if the Trump campaigns had built a messaging strategy around the release of hacked Democratic emails by WikiLeaks.

“Generally that’s true,” Mueller said.

“And then they lied to cover it up?” Schiff asked.

“Generally that’s true,” Mueller said again.

Mueller exceeded Democratic hopes when Rep. Mike Quigley (D-Ill.) asked him to weigh in on Trump’s praise of WikiLeaks during the campaign. “Problematic is an understatement, in terms of what it displays, in terms of giving some hope or some boost to what is and should be illegal activity,” Mueller said. In this statement, Mueller offered a personal assessment that went beyond the measured tones of his report. Minutes later, Schiff asked if knowingly accepting foreign assistance during a presidential campaign was an “unethical thing to do.” Mueller agreed, adding, “And a crime.”

Mueller also agreed that Trump’s claim during that campaign that he had no business in Russia was belied by his secret pursuit in 2015 and 2016 of a lucrative deal to develop a Trump-branded tower in Moscow. Joaquin Castro (D-Texas) pointed out in his questioning that Trump’s personal lawyer, Michael Cohen, in claims to Congress in the fall of 2017 that he later admitted were false, said he had tried but failed to contact a Putin deputy, Dmitry Peskov, in a bid to win Kremlin backing for the deal. Shortly after Cohen’s lie, Peskov echoed it. In fact, Cohen had successfully reached Peskov’s office. In this way, Trump, Cohen and the Kremlin were all in on perpetrating the same lie.

During Wednesday’s first hearing, Jerrold Nadler (D-N.Y.), the House Judiciary Committee chair, immediately elicited from Mueller a rebuttal of Trump’s claim that the special counsel’s report had exonerated him of collusion or obstruction of justice. “That is not what the report said,” Mueller told Nadler.

Democrats, question by question, led Mueller through the 10 instances in which the report described possible obstruction of justice by Trump, fitfully painting a portrait of a president using his office to try to hamper or end Mueller’s probe.

Would it be “fair to say” that Trump “tried to protect himself by asking staff to falsify records relevant to an ongoing investigation?” Rep. Cedric Richmond (D-La.) asked. “That’s generally a fair summary,” Mueller said.

Did Trump tell White House counsel Don McGahn to lie by saying Trump never asked him to fire Mueller? That was true, Mueller replied to Richmond.

Did Trump campaign officials hamper the investigation by deleting communications? “We believe that to be the case,” Mueller replied to Rep. Eric Swalwell.

In careful questioning, Rep. Hakeem Jeffries (D-N.Y.) got Mueller to agree that Trump’s act had met the three elements required to charge obstruction of justice: an obstructive act, a nexus with an official proceeding, and corrupt intent.

But it was a Republican, Rep. Ken Buck of Colorado, who inadvertently coaxed maybe the most damaging testimony from Mueller. This concerned the Office of Legal Counsel’s opinion that a sitting president cannot be indicted. Attorney General William Barr has suggested the opinion was not the reason Mueller did not accuse Trump of obstruction of justice—in effect that Mueller’s failure to charge Trump with obstruction meant that Trump did not obstruct justice. But on Wednesday, Buck stumbled headlong into the impression the attorney general had been at pains to create. He asked if there had been “sufficient evidence to convict president of Trump or anyone else of obstruction of justice.” Mueller replied that the special counsel’s office “did not make that calculation.”

“Why not?” Buck asked.

“Because of the OLC opinion that states the president can’t be charged with a crime,” Mueller said.

It was not Buck’s only mistake. He also asked Mueller if Trump could be charged with a crime after leaving office. “Yes,” Mueller said. “You could charge the president of the United States with obstruction of justice after he left office?” Buck asked again, apparently surprised. “Yes,” Mueller repeated.

Mueller was, maybe inevitably, a disappointing witness—far from the deus ex machina many liberals had counted on. But in a way, it didn’t matter that much. The hearings showed you can create a damning spectacle for this president by doing little more than saying out loud the things he did that we already know to be true.