Michael Cohen laid out a litany of damning allegations against his former boss Donald Trump, staying emphatic and calm as Republicans on a congressional committee assailed him as a convicted liar out to gain publicity and hurt the US President.
"Everybody's job at the Trump Organisation is to protect Mr Trump," Cohen, the President's former lawyer and fixer, told the the House Oversight and Reform Committee today.
"Every day, most of us knew we were coming in and we were going to lie for him on something. And that became the norm, and that's exactly what's happening right now in this country."
The nationally televised hearing was the most dramatic public inquiry into Trump's personal and business affairs since Democrats won control of the House in the November election.
Republicans on the panel used every opportunity to denounce it as a forum for a criminal who has pleaded to nine offences - including lying to Congress previously behind closed doors - and is due to report to prison on May 6.
"You have a history of lying over and over and over again," Congressman Jim Jordan of Ohio, the Oversight panel's top Republican, told Cohen.
He suggested Cohen had grown bitter because Trump didn't give him a White House job after the election, an assertion Cohen denied. Other Republicans suggested he was angling for book and movie deals.
Cohen's testimony touched on numerous potential legal threads that could concern the President, from hush money paid to a porn star before the election to allegations of overstating his net worth for loans, insurance and tax purposes.
But it's unclear how much added legal jeopardy the President may find himself as a result of Cohen's testimony.
The ex-fixer produced documents to back up some of his claims - an alleged hush-money cheque signed by Trump and a financial statement that Cohen said was fraudulent.
He suggested Trump committed loan fraud by submitting inflated financial statements, including to Deutsche Bank to get a loan when he was trying to buy the Buffalo Bills football team. He said Trump was aware that his company also submitted phony valuations to insurance companies to reduce premiums.
He claimed he was an eyewitness to other events, including a phone call where longtime adviser Roger Stone informed Trump about the coming release of stolen Democratic emails by WikiLeaks. US intelligence agencies have found the hack was executed by Russia as part of an effort to hurt Democrat Hillary Clinton and ultimately help Trump win the presidency.
"He is a racist. He is a con man. He is a cheat," Cohen said of Trump.
But he acknowledged he had no direct evidence of Trump colluding with Russia, a central question in Special Counsel Robert Mueller's probe of Russian election interference. He said only that "I have my suspicions."
In June 2016, Cohen said, Donald Trump jnr "leaning over to his father and speaking in a low voice," said "the meeting is all set." That was the month Trump jnr and others met with Russians dangling the prospect of dirt on Clinton.
Cohen gave the committee a copy of a cheque that he said Trump signed after he became president as reimbursement for hush money paid to silence Stephanie Clifford, the porn star also known as Stormy Daniels, who alleged she had an affair with Trump. Cohen has pleaded guilty to charges of illegal campaign contributions related to the payments.
Cohen also pleaded guilty to lying to Congress about a proposed Trump tower in Moscow, saying the Trump Organisation stopped pursuing the deal early in 2016 when the efforts actually continued well into that election year. Cohen said Trump "knew of and directed" negotiations for the project in Moscow "throughout the campaign and lied about it."
He also said that Trump committed illegal acts that won't be discussed in the hearing because they're being looked at by federal prosecutors in New York.
Trump wasn't expecting to win the presidency, seeing the campaign as a brand-building opportunity, Cohen said.
He "ran for office to make his brand great, not to make our country great. He had no desire or intention to lead this nation - only to market himself and to build his wealth and power. Trump would often say, this campaign was going to be the 'greatest infomercial in political history.'"
On race, Cohen testified that Trump "once asked me if I could name a country run by a black person that wasn't a 'shithole.' This was when Barack Obama was president." He claims Trump also said "black people would never vote for him because they were too stupid."
Cohen testified behind closed doors before the Senate Intelligence Committee for hours yesterday and will do the same tomorrow before the House Intelligence panel. Questions in the closed sessions are focusing in part on Mueller's investigation.
White House Press Secretary Sarah Huckabee Sanders said in a statement that "it's laughable that anyone would take a convicted liar like Cohen at his word, and pathetic to see him given yet another opportunity to spread his lies."
The hearing provided something of a split-screen moment for Americans, interspersed with coverage of Trump's visit to Vietnam for his second summit meeting with North Korean leader Kim Jong Un. Before he was to sit down to dinner with Kim, Trump blasted Cohen in a tweet.
"He is lying in order to reduce his prison time," Trump said.