US President Donald Trump has launched a scathing attack on the media during a rally marking 100 days in office.
He told supporters in Pennsylvania that he was keeping "one promise after another", dismissing criticism as "fake news" by "out of touch" journalists.
Mr Trump decided to skip the White House Correspondents' Dinner - the first US leader to miss the event since an injured Ronald Reagan in 1981.
Mr Trump's approval ratings hover at around the 40% mark - believed to be lower than any other president at the 100-day marker.
At the rally in Harrisburg, the president said the media should be given "a big, fat, failing grade" over their coverage of his achievements during his first 100 days and told the cheering crowd he was "thrilled to be more than 100 miles from Washington".
He quipped that at the same time "a large group of Hollywood actors and Washington media are consoling themselves" at the correspondents' dinner "that will be very boring".
Until now, late president Ronald Reagan in 1981 was the last US leader to miss the annual dinner, when he was recovering from an assassination attempt.
Addressing the journalists and celebrities at the dinner in Washington, Reuters White House correspondent Jeff Mason defended his profession, saying it was "our job to report on facts, and to hold leaders accountable".
"We are not 'fake news'. We are not failing news organisations, and we are not the enemy of the American people," Mason said.
Turning to his election pledges, Mr Trump said the first 100 days had been "very exciting and very productive".
He said he was "delivering every single day" by:
- Ending "jobs theft" and bringing them back to the US from overseas
- Easing regulations on energy exploration, including halting a "war on coal"
- Pulling out of international deals not beneficial to the US, including the Trans-Pacific Partnership
Mr Trump also said the administration of Barack Obama had resulted in "a mess", stressing that he was ready for "great battles to come and we will win in every case".
On climate change, Mr Trump said "a big decision" would be taken within the next two weeks.
He earlier described climate change as a hoax, vowing to pull the US out of the Paris Agreement.
But despite Mr Trump's claim to be keeping his promises, he has failed to start construction on the wall he plans along the US-Mexico border - or to get Mexico to pay for it.
"We'll build the wall, folks, don't even worry about it," the president said.
On another campaign promise, to label China a currency manipulator, he said now was not "the best time."
Ahead of the speech, tens of thousands took part in protests across the US against the Trump administration's stance on climate change. The People's Climate March was timed to coincide with the 100th day of his presidency.
In Washington, the demonstrators marched from the US Capitol to the White House.
Organisers said they wanted to put the climate debate firmly on the agenda for next year's midterm elections.