Read: Michael Cohen’s stunning testimony about Trump

Cohen is headed to prison in May, serving three years for bank fraud, tax evasion, and lying to Congress. But on Wednesday, Cohen said he lied to lawmakers at Trump’s behest, trying to obscure when a Trump building project in Moscow had really ended. Cohen did not confirm a BuzzFeed report from January saying the president explicitly told him to lie. But he nonetheless implicated Trump in his choice, describing a Mafia-style wink-and-nod agreement. “Mr. Trump did not directly tell me to lie to Congress,” Cohen said. “That’s not how he operates.”

Cohen also said he heard Roger Stone, whom Mueller recently indicted, tell Trump on the phone about impending dumps of leaked emails by WikiLeaks. And he reported an encounter in which he believes that Donald Trump Jr. told his father about his Trump Tower meeting with Russians in June 2016—though Cohen’s account was too vague to be convincing.

If Cohen hadn’t said anything consequential beyond the written testimony, the hearing would still have been a barn burner. And for large chunks of the afternoon, it seemed like he wouldn’t add anything useful. Republicans feuded with Chairman Elijah Cummings from the start over the ground rules—and over the very existence of the hearing. Democrats asked Cohen to speculate about Donald Trump colluding with Russia, which he declined to do. Republican members spent much of their time impugning Cohen. As is often the case in congressional hearings, many of the questions were bad or confusing. One GOP member even said that today’s hearing was the first he’d heard of Cohen, though he then backtracked on that claim.

The Republican strategy was to make the focus Cohen’s credibility—and indeed, there are serious questions about his trustworthiness. Cohen is going to jail for lying to Congress, to banks, and to the IRS. For much of the hearing, that strategy was successful, but it’s unclear to what end. Nearly every punch Republicans landed was simply proving something that had already been proved. Even Cohen doesn’t dispute that he lied repeatedly, and showing that he was a bad lawyer seemed superfluous the day after he was disbarred. Cohen said that he was chastened by his convictions, and that while he had lied to protect Trump before, he now had no motive to do so. Cohen also had an answer for those who doubted his reliability.

“It is for exactly that reason I spent the last week searching boxes to find the information that I did so you don’t have to take my word for it,” he said, referring to evidence he’d provided Congress. “I don’t want you to. Look at the documents and make your own decision.”

But Republicans made more headway in another area. They accused Cohen of attacking the president out of revenge for not getting a White House job. (Why Cohen’s primary motive for revenge would be this slight, rather than his impending jail term, is unclear.) Cohen, disputing a slew of news reports, said he had never wanted a White House position. GOP members argued that constituted a lie.